m_avrina
@m_avrina
Студентота.

C++ QT почему не работает запрос к sql Lite DB?

Всем привет!)

Собственно почему-то не работает занесение в базу данных значений, введенных в едиты.

Запрос из бд, работает то есть проверить есть ли там какие-то поля, выходит, а вот с этим какие-то проблемы.

Вот код функции:
QMessageBox mess;
    QString Name,Email,Password;

    Name=ui->lineEdit->text();
    Email=ui->lineEdit_2->text();
    Password=ui->lineEdit_3->text();


    QSqlDatabase regDB;
    regDB=QSqlDatabase::addDatabase("QSQLITE");
    regDB.setDatabaseName("D:\\database.db3");
    if(!regDB.open())
    {
        ui->label->setText("Data Base isn't open");
    }
    QSqlQuery query;

    query.prepare("INSERT INTO  People (Name, Password, E-mail) VALUES(?, ?, ?)");
   query.addBindValue(Name);
     query.addBindValue(Password);
     query.addBindValue(Email);

   if(query.exec())
   {
       qDebug()<<"All ok";
      }
   else
       qDebug()<<"loseee";

    mess.setText("Register is secseful");
    mess.exec();
  • Вопрос задан
  • 481 просмотр
Решения вопроса 2
@Mercury13
Программист на «си с крестами» и не только
Нет, ваше решение неуниверсально и ваша ошибка — не заэкранировать идентификатор E-mail.
Попробуйте [E-mail].
(Часто используется экранирование `E-mail`, но в SqLite оно не катит, это специфика MySQL.)
Ответ написан
Комментировать
m_avrina
@m_avrina Автор вопроса
Студентота.
UP: Исправил( был не верен SQL запрос)
Было: query.prepare("INSERT INTO People (Name, Password, E-mail) VALUES(?, ?, ?)");

Стало: query.prepare("INSERT INTO People VALUES(?, ?, ?)");
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы