在我用 qt 开发的应用程序中与 Sqlite 的应用程序连接
App connection with Sqlite in my app developed in qt
在我的 QT5 应用程序中,我有这段代码
QString sql = "Select * from table";
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("./au.sqlite");
db.open();
QSqlQuery query(sql);
query.exec();
但是当我得到结果时只得到一个结果,select 查询只给我一个结果,我不知道如何解决这个问题。如果我在 while 循环中添加 query.next()
,我只会得到一次迭代。
您可以查看 Qt5 发行版中包含的 sqlbrowser 示例。 运行 你的查询在你的数据库上。
有一个bool
函数,如果查询成功,returns true
。回顾文档:
Successfully executed SQL statements set the query's state to active so that isActive() returns true. Otherwise the query's state is set to inactive.
这是您检查结果的方式。如果它是 false
,那么您应该尝试重写您的 sql 查询文本,以便功能性 sql 词(例如 SELECT、FROM 等)为大写(它在文档中显示的方式)并尝试再次执行查询。
这里又是文档中的一个例子:
QSqlQuery query("SELECT country FROM artist");
while (query.next()) {
QString country = query.value(0).toString();
doSomething(country);
}
在我的 QT5 应用程序中,我有这段代码
QString sql = "Select * from table";
QSqlDatabase db = QSqlDatabase::addDatabase("QSQLITE");
db.setDatabaseName("./au.sqlite");
db.open();
QSqlQuery query(sql);
query.exec();
但是当我得到结果时只得到一个结果,select 查询只给我一个结果,我不知道如何解决这个问题。如果我在 while 循环中添加 query.next()
,我只会得到一次迭代。
您可以查看 Qt5 发行版中包含的 sqlbrowser 示例。 运行 你的查询在你的数据库上。
有一个bool
函数,如果查询成功,returns true
。回顾文档:
Successfully executed SQL statements set the query's state to active so that isActive() returns true. Otherwise the query's state is set to inactive.
这是您检查结果的方式。如果它是 false
,那么您应该尝试重写您的 sql 查询文本,以便功能性 sql 词(例如 SELECT、FROM 等)为大写(它在文档中显示的方式)并尝试再次执行查询。
这里又是文档中的一个例子:
QSqlQuery query("SELECT country FROM artist");
while (query.next()) {
QString country = query.value(0).toString();
doSomething(country);
}