Qtsql中的参数计数不匹配
Parameter count mismatch in Qtsql
我正试图将数据插入QtSql数据库,但我一直得到错误:
"Parameter count mismatch"
我做错了什么?
#include <QtSql>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
qDebug() << QSqlDatabase::drivers();
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setHostName("LOCALHOST");
db.setDatabaseName("people");
db.setUserName("root");
db.setPassword("");
if(db.open()) {
qDebug() << "Opened!";
QSqlQuery query;
query.prepare("INSERT INTO person (id, forename, surname) "
"VALUES (:id, :forename, :surname)");
query.bindValue(":id", 1001);
query.bindValue(":forename", "Bart");
query.bindValue(":surname", "Simpson");
query.exec();
if( !query.exec() )
qDebug() << query.lastError().text();
else
qDebug( "Inserted!" );
db.close();
} else {
qDebug() << "Not opened";
}
}
数据库中没有名为person
的表。您正在尝试向一个不存在的表中插入值。
我认为错误信息是错误的。但无论如何,我在代码中添加了CREATE
语句,以便在INSERT
语句执行之前创建表:
#include <QtSql>
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(":memory:");
if(!db.open()){
qDebug() << "Not opened";
return 1;
}
qDebug() << "Opened!";
QSqlQuery query;
//CREATE the table before executing the INSERT statement
query.exec("CREATE TABLE person (id INTEGER, forename TEXT, surname TEXT);");
query.prepare("INSERT INTO person (id, forename, surname) "
"VALUES (:id, :forename, :surname)");
query.bindValue(":id", 1001);
query.bindValue(":forename", "Bart");
query.bindValue(":surname", "Simpson");
if( !query.exec() )
qDebug() << query.lastError().text();
else
qDebug( "Inserted!" );
return 0;
}
现在打印Inserted!
。但是,如果我注释掉CREATE
语句行,我在你的问题中得到同样的错误:
" Parameter count mismatch"
相关文章:
- Qt SQLite没有查询或参数计数不匹配
- 模板参数推导失败,函数参数/参数不匹配
- C++模板/别名 - 模板参数列表中参数 1 处的类型/值不匹配
- 错误:"模板<类_Tp,类_Dp>类 std::unique_ptr"的模板参数列表中参数 1 的类型/值不匹配
- 为什么使用不匹配的参数调用重载函数仍然有效
- 程序告诉我,即使它们明显匹配,参数也不匹配
- 模板参数'(type)0'与'EnumValue'不匹配
- (C++) 字符串文本与参数列表不匹配
- CvMat:输入参数的大小不匹配
- 参数错误可能与类型不匹配有关?
- 作为模板类型参数,为什么 type[N] 与其专用版本不匹配----模板<类 T>类 S<T[]>
- 模板参数列表中参数 3 处的类型/值不匹配
- 用户定义的构造函数重载与参数超类的重载不匹配
- 模板-模板参数给出神秘的类型/值不匹配
- POSIX(C )参数类型不匹配
- 演绎指南和具有可变参数模板构造函数的可变参数类模板 - 参数包长度不匹配
- 数据不匹配,编译器无法推断模板参数
- Python 参数类型与C++签名不匹配
- 类模板方法的专用化,类型名称是类模板 - 错误:参数处的类型/值不匹配
- C++ 可变参数模板和模板模板参数:错误:模板参数列表中参数 1 处的类型/值不匹配