我有小部件,其连接到数据库:的SQLite数据库删除错误
Widget::Widget(QWidget *parent)
{
QString databaseName = "name";
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(databaseName);
db.setHostName("localhost");
if(!db.open())
qDebug()<<"ret error";
}
现在我想删除数据库连接后插件关闭(目前我得到这样的警告:QSqlDatabasePrivate::removeDatabase: connection 'qt_sql_default_connection is still in use...
)。我已经阅读了一些主题,并尝试从他们那里评估一些解决方案,但没有一个适合我。我的代码:
void Widget::closeEvent(QCloseEvent *e)
{
QSqlDatabase db = QSqlDatabase::database();
QString connection = db.connectionName();
db.close();
QSqlDatabase::removeDatabase(connection);
qDebug()<<"error: "<<db.lastError().text();
}
错误我得到的是:Driver not loaded Driver not loaded
什么是做这种正确的方法是什么?
编辑:
另一种方法:
void Widget::someMethod()
{
QSqlDatabase db = QSqlDatabase::database();
QSqlQuery query(db);
query.exec("some query");
}
你有你的sqlite库安装在你的系统中? – ScarCode 2012-07-19 09:39:33
是的,我可以添加数据的一切工作。调用查询并在表格视图中查看它。唯一的问题是关闭。错误在closeEvent()中返回。 – krzych 2012-07-19 10:20:05