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();
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();