Qt Sqlite表列似乎消失了
Qt Sqlite table column appears to be gone
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(":temp:");
if (!db.open()) {
qDebug() << "Database open error." << db.lastError();
return;
}
QSqlQuery query(db);
query.prepare("create table if not exists dew (id int, title varchar(255) not null)");
if (!query.exec()) {
qDebug() << "Query exec error. " << query.lastError();
return;
}
qDebug() << "Insert query exec OK";
if (!query.exec("insert into dew(id, title) values (1, 'hello')")) qDebug() << query.lastError();
将输出显示为
Insert query exec OK
QSqlError(1, "Unable to execute statement", "table dew has no column named id")
Insertion finished.
表创建似乎没问题。但是id字段在哪里?我对这段代码感到困惑。我测试 query.record().contains("id"); 它是假的
":temp:"
不是临时数据库的有效名称,这会在磁盘上创建一个常规数据库,该数据库在数据库连接关闭后保留。
若要创建不会保存到文件中的临时或内存中 sqlite 数据库,需要分别传递空字符串 (*) 或特殊字符串":memory:"
作为数据库名称。
http://www.sqlite.org/inmemorydb.html
Qt不允许空QString
作为数据库名称,但以' '
开头的QString
应该有效:db.setDatabaseName(QChar(0));
相关文章:
- C++ :: 设置值函数在函数内设置,但后跟 Get 函数,设置值消失了
- 添加新纹理OpenGL时,模型消失了
- 当焦点丢失时,全屏GLFW窗口消失了
- 为什么当我写入文件时,结构在我的文件中消失了
- 我的地板平面的一部分消失了
- 最小化/最大化后,MFC窗口图形消失了
- 为什么我在使用矢量的 push_back() 函数后元素消失了
- 一秒钟后,OpenCV窗口消失了
- 字符串神秘地消失了,将字符串从C++带到对象C++
- Qpainter的情节消失了
- 为什么Visual Studio的控制台消失了?
- 为什么我的 cmd 消失了?我使用 cin.ignore(),但它没有效果!C++
- 尺寸手柄从MacOSX上的Qt 5.1的状态栏中消失了
- Qt Sqlite表列似乎消失了
- 为什么当我在OpenGL中启用照明时,我的颜色消失了?
- eclipse CDT 8.01 - 默认路径(libstdc,libstdc++)在"include"目录中完全消失了
- 当我将setPhysicsBody设置为sprite时,sprite消失了
- 苹果的 Using C++ with Objective-C 文章已经消失了......谁能给我一篇新文章,或者帮我找到旧文章?
- 当从c++传递缓冲区到NodeJS时,我的数据消失了
- Visual C++ 2010:如果我将"const"添加到一个比较中,为什么"signed/unsigned mismatch"消失了?