qsqlquery qt 返回结果_Qt数据库 利用QSqlQuery类执行SQL语句 下篇

本文详细介绍了在Qt中如何使用QSqlQuery类进行批处理操作和事务处理。通过示例代码展示了如何利用QSqlQuery进行数据插入、删除,并使用addBindValue进行值绑定。同时,讲解了如何开始、提交和回滚事务,确保数据库操作的原子性。最后,文章指出Qt还提供了更简单的非SQL方式来操作数据库。
摘要由CSDN通过智能技术生成

Qt数据库利用QSqlQuery类执行SQL语句 下篇是本节介绍的内容,接着上篇文章继续讲 Qt数据库 利用QSqlQuery类执行SQL语句 中篇,先来看内容。

三,批处理操作。

当要进行多条记录的操作时,我们就可以利用绑定进行批处理。看下面的例子。

void Widget::on_pushButton_clicked()

{

QSqlQuery q;

q.prepare(“insert into student values (?, ?)”);

QVariantList ints;

ints<<10<<11<<12<<13;

q.addBindValue(ints);

QVariantList names;

names<

//***一个是空字符串,应与前面的格式相同

q.addBindValue(names);

if (!q.execBatch()) //进行批处理,如果出错就输出错误

qDebug()<

//下面输出整张表

QSqlQuery query;

query.exec(“select * from student”);

while(query.next())

{

intid=query.value(0).toInt();

QStringname=query.value(1).toString();

qDebug()<

}

}

然后在widget.cpp文件中添加头文件 #include    。

我们在程序中利用列表存储了同一属性的多个值,然后进行了值绑定。***执行execBatch()函数进行批处理。注意程序中利用QVariant(QVariant::String)来输入空值NULL,因为前面都是QString类型的,所以这里要使用QVariant::String 使格式一致化。

运行效果如下:

四,事务操作。

事务是数据库的一个重要功能,所谓事务是用户定义的一个数据库操作序列,这些操作要么全做要么全不做,是一个不可分割的工作单位。在Qt中用transaction()开始一个事务操作,用commit()函数或rollback()函数进行结束。commit()表示提交,即提交事务的所有操作。具体地说就是将事务中所有对数据库的更新写回到数据库,事务正常结束。rollback()表示回滚,即在事务运行的过程中发生了某种故障,事务不能继续进行,系统将事务中对数据库的所有已完成的操作全部撤销,回滚到事务开始时的状态。

如下面的例子:

void Widget::on_pushButton_clicked()

{

if(QSqlDatabase::database().driver()->hasFeature(QSqlDriver::Transactions))

{     //先判断该数据库是否支持事务操作

QSqlQuery query;

if(QSqlDatabase::database().transaction()) //启动事务操作

{

//

//下面执行各种数据库操作

query.exec(“insert into student values (14, ‘hello’)”);

query.exec(“delete from student whereid=1″);

//

if(!QSqlDatabase::database().commit())

{

qDebug()<<:database>

if(!QSqlDatabase::database().rollback())

qDebug()<<:database>

}

}

//输出整张表

query.exec(“select * from student”);

while(query.next())

qDebug()<

}

}

然后在widget.cpp文件中添加头文件 #include 。

QSqlDatabase::database()返回程序前面所生成的连接的QSqlDatabase对象。hasFeature()函数可以查看一个数据库是否支持事务。

运行结果如下:

可以看到结果是正确的。

对SQL语句我们就介绍这么多,其实Qt中提供了更为简单的不需要SQL语句就可以操作数据库的方法,我们在下一节讲述这些内容。本文章原创于www.yafeilinux.com

小结:Qt数据库 利用QSqlQuery类执行SQL语句 下篇的内容介绍完了,希望本文对你有所帮助!更多关于数据库的操作请看编辑推荐。

【编辑推荐】

【责任编辑:李程站 TEL:(010)68476606】

点赞 0

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值