首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >MySQL:“命令出同步”错误(C连接器)

问MySQL:“命令出同步”错误(C连接器)
EN

Stack Overflow用户
提问于 2013-06-14 19:29:20
回答 1查看 2.2K关注 0票数 2

环境:

我正在使用MySQL C连接器编写代码。

The bug:

对获取数据的第二个调用(以及随后的所有调用)总是返回一个“从同步中运行命令”“不能立即运行此命令”错误。

  • 我对每个调用运行相同的sql。
  • 如果关闭调用之间的连接,则不会发生错误。

算法:

我准备调用存储过程。

调用mysql_stmt_result_metadata()获取t元数据。

把结果绑定起来。

调用mysql_stmt_store_result()来缓冲结果。

调用mysql_stmt_fetch()以获得所有结果。

完成后调用mysql_stmt_free_result()。

调用mysql_stmt_close();

我从这示例中建模我的代码。我所做的唯一改变就是调用mysql_stmt_store_result(),以便在获取结果集之前得到结果集的大小。

有什么建议吗?

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2013-06-24 22:31:52

这一段给出了以下线索:

“如果程序使用CALL语句执行存储过程,则必须启用CLIENT_MULTI_RESULTS标志。这是因为除了在过程中执行的语句可能返回的任何结果集之外,每个调用都返回一个结果以指示调用状态。因为调用可以返回多个结果,所以使用调用mysql_next_result()的循环来处理它们,以确定是否有更多的结果。”

存储过程可能只返回一个结果集,并且没有输出参数,但是您将收到许多结果集,有些相同,有些为空。使用标记为非输出参数的第一个结果集似乎对我有效。

票数 2
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/17115919

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档