QSqlQueryModel 抱怨我的数据库没有打开
QSqlQueryModel complains that my database is not open
我正在尝试使用QSqlQueryModel
从我的数据库中检索一些值,如下所示:
QSqlDatabase db = QSqlDatabase::addDatabase("QPSQL", "test1");
db.setHostName(Vars::strDbHost);
db.setDatabaseName(Vars::strDbName);
db.setPort(Vars::strDbPort);
db.setUserName(Vars::strDbUsername);
db.setPassword(Vars::strDbPassword);
db.open()
QSqlQueryModel model;
model.setQuery(QString("SELECT * FROM users WHERE login=%2").arg(Vars::strUserLogin));
但是我不断收到一个QSqlQuery::exec: database not open
错误。
为什么会这样,如何正确使用 QSqlQueryModel
来检索我想要的值?
您调用了错误的setQuery
版本。这仅适用于具有默认名称的数据库。在您的情况下,您需要致电void QSqlQueryModel::setQuery(const QString &query, const QSqlDatabase &db)
:
model.setQuery(QString("SELECT * FROM users WHERE login=%2").arg(Vars::strUserLogin)
, db);
相关文章:
- 当我不需要数据库中的所有值时,如何部分初始化 c++ 对象?
- PostgreSQL:如何为我的单元测试创建临时用户和数据库
- 尝试使用帖子将数据添加到我的MySQL数据库中
- 使用连接器 c++ 访问 MYSQL 数据库(如何将路径添加到我的标准搜索目录)
- 我的程序从数据库中读取 0,即使有一个 1
- 当我的数据库身份验证需要密码时,如何使PQXX(Postgres的C API)工作
- 我的数据库的最终值在快速排序后损坏
- MySQL C ++连接器在我插入数据库时减少了我的字符串
- 如何使用QT/C 中的多线程用API访问我的数据库
- 我的 c++ 程序是否会从世界各地的计算机(在我的局域网之外)连接到本地 MySQL 数据库
- 无法从我的二进制文件访问远程服务器中的数据库
- QT C++ 将文件从数据库存储到我的文件系统
- 为什么我无法连接到我的数据库
- 我的文件/数据库中的文本到语音
- 从我的程序连接到mysql网络数据库
- 当mysql数据库发生更新或更改时,我如何通知我的C或C++应用程序
- 需要帮助搜索功能为我的电影数据库c++
- 为什么我的字节数组被分割在0x00当我插入到我的数据库(SQL SERVER, c++)
- 我应该使用文件系统还是数据库来存储我的数据在我的音乐识别应用程序
- 在我的程序中,记录*和数据库*之间的区别是什么?