如何在连接的QSqlDatabase中查询指定的数据库?

时间:2018-01-16 18:47:26

标签: qsqlquery qsqldatabase

我的代码有效:

QSqlDatabase db;
QSqlQuery query;
db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName(directory + QDir::separator() + "db.sqlite3");
db.open();
query.exec("create table mytable (id integer)");

但是,如果我尝试通过将第3行更改为:

来命名添加的数据库
db = QSqlDatabase::addDatabase("QSQLITE", "db");

我得到一个"驱动程序未加载驱动程序未加载"错误。我已经尝试将SQL语句编辑为以下所有内容,但似乎没有任何效果。

query.exec("create table db.mytable (id integer)");
query.exec("create table `db`.mytable (id integer)");
query.exec("create table 'db'.mytable (id integer)");

如何查询连接中的特定数据库?我可以找到许多默认数据库的示例,但没有找到命名数据库。

1 个答案:

答案 0 :(得分:0)

我找到了〜一个解决方案,即将查询绑定到数据库对象。这对我来说似乎没有任何意义,尽管根据文档,QSqlDatabase对象可以通过addDatabase()与多个数据库相关联。

看来我可以有两个不同的QSqlDatabase对象,每个对象都连接到不同的命名数据库。然后当我创建一个QSqlQuery时,我将它绑定到我想要使用的数据库对象。所以代码变成了:

function second() {
  alert("Function Two");
}

function first() {
  alert("Function One");
}

setInterval(function() { second(first()); }, 1);