• 6038阅读
  • 0回复

Qt中关闭数据库怎么老提示联接正在使用中? [复制链接]

上一主题 下一主题
离线kytexzy
 

只看楼主 倒序阅读 楼主  发表于: 2006-12-29
qtcn好像不很稳定,常有一段时间不能登录,不知何故?

我的一个程序,我在一个类中用一个静态成员来表示一个到sqlite数据库的联接,在其它类中当要查询aqlite时,我就用一个静态成员函数调用它,当我推出程序时,我在closeEvent()中把这个数据库联接释放,可是我在控制台下老得到提示:
QSqlDatabasePrivate::removeDatabase: connection 'sqlite' is still in use, all queries will cease to work.

我的程序如下:
class Resource
{
public:
  ...
  static void closeLocalSqlite();
  static QSqlDatabase & getSqliteConnection();
  ...

private:
  ....
  static QSqlDatabase sqliteDB;
  ...
};

QSqlDatabase & Resource::getSqliteConnection()
{
  return sqliteDB;
}

void Resource::closeLocalSqlite()
{
  sqliteDB.close();
  QSqlDatabase::removeDatabase(_LOCAL_DATABASE);
}

....

void WorkRecord::closeEvent( QCloseEvent */*event*/ )
{
  qDebug() << "close event";
  //db.close();
  //sqliteDb.close();
  //QSqlDatabase::removeDatabase(_LOCAL_DATABASE);
  Resource::closeLocalSqlite();
  qDebug() << "End of the close event";
}
我搞不懂其中的缘由?
[ 此贴被XChinux在2007-01-07 17:25重新编辑 ]
try to find forgiveness for yourself and forgive others
快速回复
限100 字节
 
上一个 下一个