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的每个条目(代表一种数据库驱动的名字),然后
第四局就是将数据库驱动名称加入到要显示的信息,这些信息是换号分别显示的
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)