Qt关于 *** 作mysql的语句中使用变量,如何使用。

Qt关于 *** 作mysql的语句中使用变量,如何使用。,第1张

query.exec(QString("DELETE FROM information WHERE name='%1'").arg(name_del))

1可以在query.exec前,声明QString sqlquery;将带变量的sql语句放入sqlquery中

sqlquery=QObject::tr("insert into table values('%1','%2')").arg(value1,value2)

执行query.exec(sqlquery)就可以了

2可以使用query.prepare()和query.bindvalue()

例如:

query.prepare("UPDATE table SET value1 = ? WHERE id = 1")

query.bindValue(0, 100)

query.exec()

平时我们在进行批量 *** 作的时候经常会遇到这样一种情况:插入少量数据的时候发现没有任何问题,但是插入大量数据的时候就会报错 Could not execute JDBC batch update,这是因为Mysql语句的长度是有限制的,默认的长度为1M,也就是说(包含insert在内)的语句长度最大不能超过1M。

具体的数值可以根据sql语句来查看:show VARIABLES WHERE Variable_name LIKE 'max_allowed_packet'

第一句,获取系统已经安装的所有数据库驱动(QT插件目录下的数据库驱动)。

QT程序启动的时候,会搜索插件目录下的所有插件并注册到相应位置(比如内存全局变量或者windows注册表?),然后第一句就从这些注册位置获得所有的插件(比如数据库驱动)名称。

第二句不用说是初始化要显示的信息字符串。

第三句是QT支持的宏(也许新版本C++ 0x也支持?)?总之就是循环获得Stringlist的每个条目(代表一种数据库驱动的名字),然后

第四局就是将数据库驱动名称加入到要显示的信息,这些信息是换号分别显示的


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

原文地址: http://outofmemory.cn/zaji/8730749.html

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

发表评论

登录后才能评论

评论列表(0条)

保存