Есть простая табличка parameter_source (id_unit, name, definition). Пытаюсь через QSqlQuery вставить данные в неё :
query->prepare(qq.value(0));
query->bindValue(":id_unit",QString("null"));
query->bindValue(":name",QString("name"));
query->bindValue(":definition",QString("definition"));
query->exec();
qDebug() << query->boundValues();
qDebug() << query->executedQuery();
qDebug() << query->lastError();
insert into PARAMETER_SOURCE (id_unit, name, definition) VALUES (:id_unit, :name, :definition);
"insert into PARAMETER_SOURCE (id_unit, name, definition) VALUES (:id_unit, :name, :definition);"
Вообще да, запрос логически не верен, первой поле числовое (это первичный ключ), с автоинкриментом.
Но дело в том, что такой запрос sqlite отрабатывает нормально, без ошибок
insert into parameter_source values (null, 'aa','aaaa');
query->prepare(qq.value(0));
query->bindValue(0,10);
query->bindValue(1,QString("name"));
query->bindValue(2,QString("definition"));
query->exec();
qDebug() << qq.value(0);
qDebug() << query->boundValues();
qDebug() << query->executedQuery();
qDebug() << query->lastError();
"insert into PARAMETER_SOURCE (id_unit, name, definition) VALUES (:id_unit, :name, :definition);"
QMap((":definition", QVariant(QString, "definition") ) ( ":f" , QVariant(int, 10) ) ( ":name" , QVariant(QString, "name") ) )
"insert into PARAMETER_SOURCE (id_unit, name, definition) VALUES (?, ?, ?);"
QSqlError(-1, "Parameter count mismatch", "")
Бред какой-то.
Вот теперь запрос выглядит так :
insert into PARAMETER_SOURCE VALUES(%1,'%2','%3');
query->prepare(qq.value(0).arg("1").arg("blahblah").arg("BLAAA"));
query->exec();
qDebug() << qq.value(0);
qDebug() << query->executedQuery();
qDebug() << query->lastError();
"insert into PARAMETER_SOURCE VALUES(%1,'%2','%3');"
"insert into PARAMETER_SOURCE VALUES(1,'blahblah','BLAAA');"
QSqlError(-1, "Unable to fetch row", "No query")
QSqlQuery *pQuery = new QSqlQuery(...);
pQuery->prepare(
"INSERT INTO table(id, text) "
"VALUES (:id, :text);"
);
pQuery->bindValue(":id", 123);
pQuery->bindValue(":text", "text");
pQuery->exec();
Выглядит вроде впорядке, прикладываю минимальный проект, посмотрите может какую нибудь мелочь забыли.
EDIT: ой вей, прошу прощения за гробокопательство, не посмотрел дату.
Форум Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)