• 4953阅读
  • 7回复

QSqlDatabase连接数据库 用什么方法可以在断开时自动去连接数据库 [复制链接]

上一主题 下一主题
离线abelsky
 

只看楼主 倒序阅读 楼主  发表于: 2013-07-29
用QSqlDatabase类去连接数据,如果程序运行中数据库断开(如网络断开)后, 用什么方法可以在断开时自动去连接数据库
离线XChinux

只看该作者 1楼 发表于: 2013-07-29
先确认是否断开(比如查询下select version()之类的语句,确认正常返回)

然后
close(),然后open().
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线abelsky

只看该作者 2楼 发表于: 2013-07-29
此方法试过,用执行select语句方法返回时间太长了,主进程中形成阻塞,可有其他好的方法
离线XChinux

只看该作者 3楼 发表于: 2013-07-29
Qt文档中说,connection必须在创建它的线程中使用,如此,那就没办法了, 和是用一个简单的select查询确认吧.或者,你可研究一下,QSqlDatabase的connectOptions()是否支持设置超时时间(比如设置成5秒?10秒)

二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线yleesun

只看该作者 4楼 发表于: 2013-07-29
很久没搞QT了,顶一下!
离线realfan

只看该作者 5楼 发表于: 2013-07-30
断开了,isOpen()能否判断
离线XChinux

只看该作者 6楼 发表于: 2013-07-30
引用第5楼realfan于2013-07-30 09:45发表的  :
断开了,isOpen()能否判断

在这种情况下,这个似乎判断不了.
二笔 openSUSE Vim N9 BB10 XChinux@163.com 网易博客 腾讯微博
承接C++/Qt、Qt UI界面、PHP及预算报销系统开发业务
离线abelsky

只看该作者 7楼 发表于: 2013-08-01
断开了,isOpen()返回一直为true
快速回复
限100 字节
 
上一个 下一个