QSqlDatabase::addDatabase第一次运行的时候,生成SQLite文件的同时会产生一个默认连接

Posted 朝闻道

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了QSqlDatabase::addDatabase第一次运行的时候,生成SQLite文件的同时会产生一个默认连接相关的知识,希望对你有一定的参考价值。

QSqlDatabase::addDatabase第一次运行的时候,生成SQLite文件的同时会产生一个默认连接:

QSqlDatabase database = QSqlDatabase::addDatabase("QSQLITE");
QString myconn = m_createname = database.connectionName();
database.setDatabaseName(myfile);

然而真正查询的时候,却又使用了新的连接:
m_database = QSqlDatabase::addDatabase("QSQLITE", "mynewconn");
m_database.setDatabaseName(mysqlfile);

有些情况下想删除这个数据库文件,那么除了关闭mynewconn以外,还必须关闭myconn,否则就无法接触数据库文件的使用,从而导致无法删除。

怎么解除关闭数据库连接?使用:
http://doc.qt.io/qt-5/qsqldatabase.html#removeDatabase
这个也有些复杂,需要仔细看看才能明白。

以上是关于QSqlDatabase::addDatabase第一次运行的时候,生成SQLite文件的同时会产生一个默认连接的主要内容,如果未能解决你的问题,请参考以下文章

QT使用QSqlDatabase出现如下问题,求解答

Error:QSqlDatabase: QMYSQL driver not loaded (Qt+C++ 找不到mysql的驱动)

QPSQL驱动没有加载Qt

Qt数据库sqlite

未加载 QMYSQL 驱动程序,尝试了所有提示

QtQt5.9连接MySQl5.7(亲自测试成功)