Qt数据库(3) - 连接数据库
Qt Version 5.14.0
想要使用QSqlQuery或QSqlQueryModel访问数据库,首先要创建或打开1个或多个数据库链接。数据库链接通常使用链接名称作为唯一标识,而不是数据库名称。可以使用多个数据库链接同时连接同一个数据库。QSqlDataBase支持默认连接的概念(未命名链接),调用QSqlQuery或QSqlQueryModel访问数据库时,参数里如果不给出链接名称,就会使用默认链接。如果你的程序只链接一个数据库,那么默认链接用起来很方便。
创建链接和打开链接的区别:创建链接时会同时创建一个QSqlDataBase类的实例(Sqlite会自动创建数据库文件),但还不能使用。需要调用open来打开链接。
以下为打开默认链接的代码
QSqlDatabase db = QSqlDatabase::addDatabase("QMYSQL");
db.setHostName("bigblue");
db.setDatabaseName("flightdb");
db.setUserName("acarlson");
db.setPassword("1uTbSbAs");
bool ok = db.open();
这段代码将连接host名为bigblue上的MySQL数据库flightdb。
以下代码建立两个分别名为first和second的MySQL数据库链接
QSqlDatabase firstDB = QSqlDatabase::addDatabase("QMYSQL", "first");
QSqlDatabase secondDB = QSqlDatabase::addDatabase("QMYSQL", "second");
如果调用打开链接的open函数失败,可以通过调用以下函数获取错误信息:
QSqlDatabase::lastError()
数据库链接一旦建立,可以在任何地方通过以下函数获取该链接的指针:
QSqlDatabase::database()
想要删除一个数据库链接,首先要关闭它,然后删除,调用以下接口:
QSqlDatabase::close()
QSqlDatabase::removeDatabase()
免责声明:
① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。
② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341