从C API调用MySQL存储过程的问题

时间:2010-02-28 10:55:24

标签: mysql c stored-procedures

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

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

我已经看过一些关于这个bug的话题,但只有PHP相关。所以C程序似乎也存在同样的问题。

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

感谢您的任何建议。

2 个答案:

答案 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'命令行客户端调用此过程?
您是否可以调用(另一个)空程序来测试问题是否与程序有关?