看到一篇关于Qt使用Sqlite的教程贴, 稍微改了下封装起来
原帖地址: https://www.cnblogs.com/xia-weiwen/archive/2017/05/04/6806709.html
遇到一个头疼的bug, 调试了一个上午
//bug 需要在方法中重新定义, 不然会出现 "Driver not loaded" 的错误
QSqlQuery sql_query;
这个对象要在类成员函数中定义,不能在头文件声明,不然会出现找不到驱动的错误

我也不知道为什么
开始贴代码
文件目录

main.cpp
#include <QtCore/QCoreApplication>
#include "sqlitehelper.h"
#include <QDebug>
#include <QStringList>
#include <QSqlDatabase>
#include <QSqlError>
#include <QSqlQuery>
void dbTest();
void dbTest1();
int main(int argc, char *argv[])
{
QCoreApplication a(argc, argv);
dbTest();
return a.exec();
}
void dbTest()
{
// 枚举可用驱动
qDebug() << QSqlDatabase::drivers();
SqliteHelper sqliteHelper;
sqliteHelper.createDatabase();
sqliteHelper.open();
int ID;
ID = sqliteHelper.getMaxId();
QString cmd;
cmd = QString("INSERT INTO Log VALUES(%1, 0,

本文介绍了如何在Qt环境中使用SqliteHelper、QSqlDatabase和QSqlQuery进行数据库操作。作者在实践中遇到一个关于对象定义位置的bug,经过调试发现这些对象必须在类成员函数中定义,否则会出现找不到驱动的问题。文中还提供了代码目录结构,包括main.cpp、sqliteHelper.h和sqliteHelper.cpp,并提到了数据库文件log.sqlite的路径问题及其在不同模式下运行时的根目录变化。
最低0.47元/天 解锁文章
1413

被折叠的 条评论
为什么被折叠?



