Qt SqliteHelper , QSqlDatabase和QSqlQuery实现

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

看到一篇关于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, 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值