我在使用 C API 调用 MySQL 服务器上的存储过程时遇到问题。
我使用 mysql_query(&handle,"CALL myprocedure") 但函数失败(返回 1)并且错误查找给出 以下消息“过程 myprocedure 无法在给定上下文中返回结果集。” 我什至尝试使用 mysql_real_query 安装,但也没有更好。
我看过一些关于此错误的主题,但仅与 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_STATMENTS 并重试。
关于mysql - 从 C API 调用 MySQL 存储过程时出现问题,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2350823/