• 9103阅读
  • 3回复

removeDatabase: connection '**' is still in use, all queries will cease to work. [复制链接]

上一主题 下一主题
离线zhangrui241
 
只看楼主 倒序阅读 楼主  发表于: 2009-04-01
如题,
出现这个错误。
“**”为DB的名字,我看那个精华里面有解释,谁能解释的详细一点儿啊


摘自:【原创】常见的几个Qt编程问题的处理
20、删除数据库时出现"QSqlDatabasePrivate::removeDatabase: connection 'xxxx' is still in use, all queries will cease to work"该如何处理
答:出现此种错误是因为使用了连接名字为xxxx的变量作用域没有结束,解决方法是在所有使用了xxxx连接的数据库组件变量的作用域都结束后再使用QSqlDatabase::removeDatabae("xxxx")来删除连接。

什么是变量的作用域啊,我应该什么时候remove DB啊?
离线wanglehui_12

只看该作者 1楼 发表于: 2009-05-07
比如说,你用一个封装类对数据库功能进行封装,其中包含数据库名称等 ,

在该类的对象被删除后,再调用 QSqlDatabase::removeDatabase( DBName );函数即可

在这个情况下,数据库组件变量的作用域便是该对象的生命周期。

不知我将的可明白?
离线savefigo

只看该作者 2楼 发表于: 2010-03-22
  晕 新手啊 不是很明白 removeDatabase() 这个函数要写在什么地方 才能关闭连接咯  郁闷。。
离线foxyz

只看该作者 3楼 发表于: 2010-03-22
简单来说, 你没必要自己去调用removeDatabase
快速回复
限100 字节
 
上一个 下一个