Qt连接Sqlite使用事务批量插入数据

Qt连接Sqlite使用事务批量插入数据

方法一,批处理方式:

dbT1.transaction(); //开始启动事务
inQry.prepare("insert into datatable values (?,?,?)");
while (!ReadDat.atEnd()) {
	strTextData = ReadDat.readLine();
    listIndex << datIndex;
    tmStamp << tmStampCnt;
    dtData << strTextData;
    datIndex++;
    DatWin->append(strTextData);
}
//绑定数据,顺序应与表结构字段数据一致
inQry.addBindValue(listIndex); //绑定数据
inQry.addBindValue(tmStamp); //绑定数据
inQry.addBindValue(dtData); //绑定数据
inQry.execBatch(); //进行批处理操作
dbT1.commit(); //提交事务,此时打开数据库文件执行SQL语句

//不加下面三句,重复操作上面语句时,数据库不会有新的添加
//因为作为主键的listIndex内有原数据,此时数据库不会保存主键值重复的内容
listIndex.clear();
tmStamp.clear();
dtData.clear();

方法二,占位符方式:

dbT1.transaction();
while(!ReadDat.atEnd())
{
	strTextData = ReadDat.readLine();
	inQry.prepare("insert into datatable(tIndex, tTimStamp, tDistance) values(:tIndex, :tTimStamp, :tDistance)");
	inQry.bindValue(0,datIndex);
	inQry.bindValue(1,tmStampCnt);
	inQry.bindValue(2,strTextData);
	inQry.exec();
	datIndex++;
	DatWin->append(strTextData);
}
dbT1.commit();
  • 2
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 2
    评论
评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值