使用绑定调用服务器存储过程

硅法师

我正在尝试使用Qt调用MySQL服务器存储过程。该过程返回我要检索的多行数据。

我尝试的第一个代码片段效果很好:

QSqlQuery query("CALL GetOrderItems(323)", dataBase);
qDebug() << query.first();

它还返回所需的数据,并且query.first()像预期的那样为真。

然后,我尝试使用参数绑定(如Qt文档建议的那样)插入参数。我尝试了以下片段。第一个使用索引占位符,第二个使用关键字占位符。

QSqlQuery query(dataBase);
qDebug() << query.prepare("CALL GetOrderItems(?)");
query.bindValue(0, 323);
qDebug() << query.exec();
qDebug() << query.first();

QSqlQuery query(dataBase);
qDebug() << query.prepare("CALL GetOrderItems(:myparam)");
query.bindValue(":myparam", 323);
qDebug() << query.exec();
qDebug() << query.first();

这两个查询都可以正常执行。但是query.first()返回false,所以我不知道结果如何。

我可以通过某种方式从绑定查询中获得结果吗?为什么不起作用?

硅法师

在Qt文档中可以找到两个句子:

“ MySQL 5引入了SQL级别的存储过程支持,但没有用于控制IN,OUT和INOUT参数的API。” (从这里开始,谢谢Mat)

“不完全支持使用return语句返回值或返回多个结果集的存储过程。” (从这里开始

因此,显然在Qt / MySQL中绑定参数是毫无用处的。另见有关批处理模式。

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章

无法从链接服务器调用存储过程

从存储过程中调用存储在单独的数据库服务器中的sql函数

SQL 服务器:存储过程

服务器 '' 上的 MSDTC 不可用。调用存储过程时sql server链接服务器错误

我可以通过链接服务器调用 Azure 数据库中的存储过程吗?

使用 SimpleJdbcCall 优化 MSSQL 服务器中存储过程的执行

MySQL服务器存储过程语法错误

具有@variable服务器名称的存储过程

如何对链接服务器执行存储过程?

获取存储过程服务器的 timeoutseconds 值

存储过程的Azure链接服务器RPC错误

带有参数的链接服务器的存储过程 - 错误

mysql存储过程-如何获取服务器名称?

服务器打开存储过程,如Unicode

如何使用 Vue 从样式绑定调用方法?

登录方法未在Android中使用数据绑定调用

Android:使用数据绑定调用ViewModel函数

确定服务器上下文(工作区服务器与存储过程服务器)

EfCore 并调用“服务存储过程”

在服务器中使用Firebase存储

如何使用vba / vbs调用php(存储在服务器上)

使用存储过程绑定GridView

mysql服务器在哪里存储存储过程代码?

使用Powershell远程处理从许多Web服务器获取IIS绑定,调用命令和模块Webadministration

如何使用存储过程调用Web服务,该存储过程返回json并使用sql server将数据存储在表中?

NSTextView textDidChange 未通过绑定调用

ctypes绑定调用引发分段错误

可可绑定调用valueForKey:而不是valueForKeyPath:

使用jQuery在远程服务器上调用Web服务