导致 ODBC 函数序列错误的 QSqlQuery
QSqlQuery causing ODBC Function sequence error
我搜索了SO和Google,但在这个问题上没有找到太多帮助。这似乎是由于 ODBC 函数被无序调用。但是由于我使用的是包装 ODBC 的 QSql,因此我很难追踪该函数。请帮忙...
- 我能够连接到 sql 服务器数据库
- 我测试了一个非常简单的查询,但仍然收到错误。我不认为这是由于列绑定。
-
我能够使用 sql 服务器运行查询,所以我认为 sql 查询还可以。
- 我正在使用的工具:
VS c++ 2017,CMake, Qt 5.09.2, sql server 2017
以下是错误消息:
QODBCResult::exec: 无法执行语句:"[Microsoft][ODBC 驱动程序管理器] 函数序列错误" QSqlError("0", "QODBC3: 无法执行语句", "[Microsoft][ODBC 驱动程序管理器] 函数序列错误")
测试编码:
此编码生成上述错误消息。
int main()
{
QSqlDatabase GUIInpDB = QSqlDatabase::addDatabase("QODBC", "MainSQLDB");
GUIInpDB.setConnectOptions();
QString inpSqlServer = "DESKTOP-085AEA8\SQLEXPRESS";
QString dbName = "test";
QString connString = QString("Driver={ODBC Driver 13 for SQL Server};Server=%1;DATABASE=%2;Trusted_Connection=Yes;")
.arg(inpSqlServer).arg(dbName); //the argument replace the %1 and %2
GUIInpDB.setDatabaseName(connString);
QSqlDatabase db = QSqlDatabase::database("MainSQLDB");
if (!db.open())
{
qDebug() << "Connection for db not working";
return 1;
}
QSqlQuery query("SELECT * FROM TBL.tbl_test", db);
if (!query.exec())
qDebug() << query.lastError();
int num_of_rows = query.size();
getchar();
return 0;
}
我在QtCenter上发现这个讨论可能会对您有所帮助,即使我怀疑为什么它解决了这个问题 您可能会尝试使用未执行的 QSqlQuery 构造函数,如前所述
http://www.qtcentre.org/threads/18832-ODBC-function-sequence-error
相关文章:
- 警告处理为错误这里有什么问题
- "error: no matching function for call to"构造函数错误
- QSqlquery prepare()和bindvalue()不工作
- boost::进程间消息队列引发错误
- C++,OpenCV,尝试显示图像时"OpenCV(4.3.0) Error: Assertion failed (size.width>0 && size.height>0)"此错误
- 有关插入适配器的错误。[错误]请求从 'back_insert_iterator<vector<>>' 类型转换为非标量类型
- QT在错误的班级中寻找空位
- vector.resize()中的分配错误
- 代码在main()中运行,但在函数中出现错误
- 释放错误后堆使用
- (C++)分析树以计算返回错误值的简单算术表达式
- Project Euler问题4的错误解决方案
- 我的字符计数代码计算错误.为什么
- 从"int*"强制转换为"unsigned int"会丢失精度错误
- 尝试导入pybind-opencv模块时出现libgtk错误
- CMake项目Boost库错误:Boost/config/compiler/gcc.hpp:165:10:致命错误:cs
- Qt 错误:QSqlQuery::value:尝试从表中检索统计信息时未定位在有效记录上 (QComboBox)
- 导致 ODBC 函数序列错误的 QSqlQuery
- QSQLQUERY的语法错误源
- 尽管 QSqlQuery::exec 失败,但没有提供错误描述