使用C API在MySQL服务器上调用存储过程时遇到问题。
我使用mysql_query(& handle,“CALL myprocedure”)但函数失败(返回1)并且错误查找给出 以下消息“过程myprocedure无法返回给定上下文中的结果集”。 我甚至试图使用mysql_real_query insted,但没有更好。
我已经看过一些关于这个bug的话题,但只有PHP相关。所以C程序似乎也存在同样的问题。
奇怪的是我的存储过程甚至不应该返回任何结果集。它只适用于表中的数据,并不会真正返回任何内容。
感谢您的任何建议。
答案 0 :(得分:1)
参考功能:
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,然后重试。
答案 1 :(得分:0)
您是否尝试从'mysql'命令行客户端调用此过程?
您是否可以调用(另一个)空程序来测试问题是否与程序有关?