2011-02-07 2 views
2

Я использую этот код для создания базы данных. Но я получаю «ложь» в отладке. Я много пробовал, но не работал. Какая ошибка в этом?Ошибка создания базы данных в Qt

QSqlQuery query; 
qDebug() << query.exec("CREATE TABLE glucose (id INTEGER PRIMARY KEY AUTOINCREMENT, value INTEGER, date TEXT, time TEXT, duration TEXT, note TEXT"); 

    qDebug() << query.prepare("INSERT INTO glucose(id, value, date, time, duration, note)""VALUES(?, ?, ?, ?, ?, ?)"); 

    query.bindValue(1,edit_glucose->text().toInt()); 

    query.bindValue(2,datetime->date()); 

    query.bindValue(3,datetime->time()); 

    query.bindValue(4,"a"); 

    query.bindValue(5,edit_note->toPlainText()); 
    qDebug() << query.exec(); 

ответ

5

вы забыли закрыть CREATE TABLE запрос с ")"

+1

действительно, хороший улов. –

+0

спасибо ... :) он решил ... я действительно пропустил этот :( –

+0

приветствую вас, рад слышать, что –

1

Вы передаете в INSERT опрашивать id поле. Вы должны удалить его.

запрос должен быть:

Debug() << query.prepare("INSERT INTO glucose(value, date, time, duration, note) 
             VALUES(?, ?, ?, ?, ?)"); 
2

QSqlQuery имеет метод LastError() возвращает информацию об ошибке :)

+0

да я использовал это: qDebug() << query.lastError(); Но его показ error: двоичный '<<' оператор не найден, который может принимать левый операнд типа Qdebug (нет приемлемого преобразования). –

Смежные вопросы