mysql - 从 C API 调用 MySQL 存储过程时出现问题

标签 mysql c stored-procedures

我在使用 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/

相关文章:

从 MEX 调用 MATLAB 函数 "imread"

postgresql - 如何分析 plpgsql 程序

sql-server-2005 - 如何在 where 子句中调用存储过程

mysql - 如何使用自定义 MySQL 函数对第二列进行条件排序?

c# - 使用来自checkedListBox的超过1个已检查项目创建查询

mysql - 创建表空间 "error in creating database file, access denied (OS 5)"

c - 在 main() 中声明结构

php - mysql_data_seek 和 mysql_field_seek 之间的区别?

c - 如何检查初始化的结构是否为空?

mysql - 在更新同一行中的其他字段时更新字段