首页| 论坛| 消息

标题:数据库断网重连问题,如何重新定义netquery啊
作者:wfwjp
日期:2017-04-19 12:55
内容:

程序连接两个数据库,定义了两个Qsqldatabase对象,netdb和localdb,两个Qsqlquery,netquery和localquery。
如果网络有很多断点,在netquery.exec()时报错,我想再重新连接一下netdb,见下面例子。在netdb重连后,如果使用QSqlQuery netquery1(netdb);是可以的,但是直接使用netquery就会报错,我需要仍然使用netquery,如果Qsqlquery netquery(netdb)重新定义就会报错,netquery如何重新定义呢?
QSqlDatabase netdb=QSqlDatabase::addDatabase("QODBC","netdb");
netdb.setDatabaseName(QString("DRIVER={SQL SERVER};"
"SERVER=%1;" //服务器名称
"DATABASE=%2;"//数据库名
"UID=%3;" //登录名
"PWD=%4;"//密码
).arg(netservername)
.arg(netdatabase)
&nbs ..


#1 [wfwjp 04-19 16:44]
测试了下

netdb.removeDatabase("netdb");
netdb=QSqlDatabase::addDatabase("QODBC","netdb");
改为
netdb=QSqlDatabase::addDatabase("QODBC","netdbtest");
就可以直接使用netquery了。

QSqlDatabase netdb=QSqlDatabase::addDatabase("QODBC","netdb");
netdb.setDatabaseName(QString("DRIVER={SQL SERVER};"
"SERVER=%1;" //服务器名称
"DATABASE=%2;"//数据库名
"UID=%3;" //登录名
"PWD=%4;"//密码
).arg(netservername)
.arg(netdatabase)
.arg(netlogid)
&n ..

回复 发表
主题 版块