QT 使用mysql批量插入时出错

QT 使用mysql批量插入时出错,第1张

1:首先我编译了一个release版本,而后用dependency walker查看了下库的依赖情况。发现依赖于:QtSql4.dll,QtGui4.dll,QtCore4.dll,msvcr80.dll以及 KERNEL32.DLL这几个库。其中最后一个是system的,我们不用去管,剩下的这几个显然都需要拷贝到exe同目录下。 尤其是msvcr80.dll,我在我电脑上搜了一下:有多大10几个同名的该文件,所以拷贝哪个是很重要的,此时我们只需要在dependency walker查看这个dll的属性,然后去对应目录底下拷贝就行了。 所以:第一步就是把这些依赖库拷贝到exe同目录下。(千万不要拷贝错误,尤其是不同的版本)

可以使用oracle sql loader批量导入数据:

 生成测试数据的EXCEL文件,把EXCEL文件另存为CSV(逗号分隔)(*.csv),控制文件设置为用逗号分隔。

示例:

LOAD DATA

INFILE ‘d:\car.csv’

APPEND INTO TABLE t_car_temp

FIELDS TERMINATED BY ","

(phoneno,vip_car)

保存为input.ctl

最后在命令行下输入:

C:\>sqlldr userid=system/manager

control=input.ctl(在unix环境下亦同)

默认日志文件名为:input.log

默认坏记录文件为:input.bad

解决方法:

添加事务处理,把5000条插入作为一个事务

dataBase.beginTransaction() //手动设置开始事务

//数据插入 *** 作循环

dataBase.setTransactionSuccessful() //设置事务处理成功,不设置会自动回滚不提交

dataBase.endTransaction() //处理完成

将数据库「倒出来」:

sqlite3 film.db ".dump" >output.sql

利用输出的资料,建立一个一模一样的数据库(加上以上指令,就是标准的SQL数据库

备份了):

sqlite3 film.db <output.sql

在大量插入资料时,你可能会需要先打这个指令:

begin

插入完资料后要记得打这个指令,资料才会写进数据库中:

commit


欢迎分享,转载请注明来源:内存溢出

原文地址:https://54852.com/sjk/9940516.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-05-03
下一篇2023-05-03

发表评论

登录后才能评论

评论列表(0条)

    保存