我在使用C API调用MySQL服务器上的存储过程时遇到问题。

我使用mysql_query(&handle,“ CALL myprocedure”),但函数失败(返回1),并且错误查找给出了
以下消息“过程myprocedure无法在给定上下文中返回结果集。”
我什至尝试使用mysql_real_query insted,但没有更好的选择。

我已经看到了有关此错误的一些主题,但仅涉及PHP。因此,C程序似乎也存在相同的问题。

奇怪的是,我的存储过程甚至都不应该返回任何结果集。它仅适用于表中的数据,并不真正返回任何内容。

感谢您的任何建议。

最佳答案

参考功能:
mysql_set_server_option()&
mysql_real_connect()
here.

仅使用MYSQL_OPTION_MULTI_STATEMENTS_ON和_OFF参数启用(临时)多个语句
到mysql_set_server_option()。

这里的问题是在CLIENT_MULTI_STATEMENTS
mysql_real_connects()
也隐式启用CLIENT_MULTI_RESULTS,但是
MYSQL_OPTION_MULTI_STATEMENTS_ON仅启用多个语句,
没有多个结果。

因此,在连接上添加CLIENT_MULTI_STATEMENTS,然后重试。

09-25 17:58