首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 移动开发 > QT开发 >

Qt多处使用数据库,结果有警告

2013-07-04 
Qt多处使用数据库,结果有警告,求助用QSQLITE建了一个数据库,我把这个数据库封装在一个StudentDatabase类里

Qt多处使用数据库,结果有警告,求助
用QSQLITE建了一个数据库,我把这个数据库封装在一个StudentDatabase类里面,然后我在其他的类里调用这个StudentDatabase类,如果只有一个其他类调用这个数据库类的话,还不会发生警告,但是如果有两个其他类调用的话就会产生警告:QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection' is still in use, all queries will cease to work.这个好像是在说重复连接了。
那这就有问题了,我的程序里有两个类都需要去访问并修改这个数据库类,我应该怎么办呢,希望路过的高人给点提示,感激不尽。


//这是数据库类的建库代码,我写在构造函数里面,不知道是不是这里有影响
studentDatabase::studentDatabase()
{
    db = QSqlDatabase::addDatabase("QSQLITE");
    db.setDatabaseName(":memory:"); //将数据库建立在内存中
    if(!db.open())
    {
        exit(0);
    }
    query = new QSqlQuery(db);
    query->exec("create table student(studentId varchar primary key,name varchar,flag int,seat int,floor int,passwd varchar)");
}



//其他类1
StudentDatabase stu1;



//其他类2
StudentDatabase stu2;


如此这般调用是否会重复的进入数据库的构造函数中,从而会使得多次建表。求助 数据库 Qt 多次调用数据库类
[解决办法]
应该在main里建立一个数据库对象,其它的地方统一使用这一个数据库对象。给构造函数增加一个参数,直接object传进去。
不要在很多地方建立很多个数据库对象。

热点排行