C++调用存储过程失败!出现如下错误:MySQL Error: PROCEDURE xmdk.query_all_plan can't return a result set in the given context

  其中:

  xmdk是数据库名称,
  query_all_plan是自己写的存储过程的名字;

  

  

  错误原因:连接数据库的方式可能不正确。

  导致报错的数据库连接方式:

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
 
if (mysql_real_connect(m_mysql, server_ip.c_str(),
                       user_name.c_str(),
                       user_password.c_str(),
                       mysql_dbname.c_str(),
                       ,
                       NULL,
                       ) == NULL)
{
    DEBUG_TRACE_ERROR(WSTR("ServerConnect_2,EER:MySQL(%s)连接失败.,%s:%d"), connectstr.c_str(), __WFUNCTION__, __LINE__);
    ;
}

  修改为正确的连接方式:

 C++ Code 
1
2
3
4
5
6
7
8
9
10
11
 
if (mysql_real_connect(m_mysql, server_ip.c_str(),
                       user_name.c_str(),
                       user_password.c_str(),
                       mysql_dbname.c_str(),
                       ,
                       NULL,
                       CLIENT_MULTI_STATEMENTS) == NULL)
{
    DEBUG_TRACE_ERROR(WSTR("ServerConnect_2,EER:MySQL(%s)连接失败.,%s:%d"), connectstr.c_str(), __WFUNCTION__, __LINE__);
    ;
}

  果然,通过修改一下连接数据库的连接参数(CLIENT_MULTI_STATEMENTS)就OK了!

  有了CLIENT_MULTI_STATEMENTS,一次就可以执行多条语句,执行一个存储过程(好多条语句)大致如此。

MySQL Error: PROCEDURE xmdk.query_all_plan can't return a result set in the given context的更多相关文章

  1. procedure can't return a result set in the given context

    调用存储过程失败!出现如下错误:PROCEDURE ipbx.qu_ery can't return a result set in the given context, ipbx是数据库, qu_e ...

  2. MySQL Error Handling in Stored Procedures 2

    Summary: this tutorial shows you how to use MySQL handler to handle exceptions or errors encountered ...

  3. MYSQL ERROR CODE 错误编号的意义

    mysql error code(备忘) 转1005:创建表失败 1006:创建数据库失败 1007:数据库已存在,创建数据库失败 1008:数据库不存在,删除数据库失败 1009:不能删除数据库文件 ...

  4. MySQL Error Handling in Stored Procedures---转载

    This tutorial shows you how to use MySQL handler to handle exceptions or errors encountered in store ...

  5. MySQL中Procedure事务编写基础笔记

    原文:MySQL中Procedure事务编写基础笔记 目录: 一.PROCEDURE: 二.CREATE PROCEDURE基本语法: 三.PROCEDURE小进阶   3.1.基本的DECLARE语 ...

  6. MySQL Error Handling in Stored Procedures

    http://www.mysqltutorial.org/mysql-error-handling-in-stored-procedures/ mysql存储过程中的异常处理   定义异常捕获类型及处 ...

  7. 谁记录了mysql error log中的超长信息

    [问题] 最近查看MySQL的error log文件时,发现有很多服务器的文件中有大量的如下日志,内容很长(大小在200K左右),从记录的内容看,并没有明显的异常信息. 有一台测试服务器也有类似的问题 ...

  8. 谁记录了mysql error log中的超长信息(记pt-stalk一个bug的定位过程)

    [问题] 最近查看MySQL的error log文件时,发现有很多服务器的文件中有大量的如下日志,内容很长(大小在200K左右),从记录的内容看,并没有明显的异常信息. 有一台测试服务器也有类似的问题 ...

  9. 关于mysql登录异常处理方法 - mysql ERROR 1045 (28000)

    今天在开发过程中遇到了一个很令人头痛的问题?? 使用 百度经验的步骤 [http://jingyan.baidu.com/article/495ba841ef412d38b30edeb2.html]修 ...

随机推荐

  1. Git高速入门——Git安装、创建版本号库以及经常使用命令

    学习Git最全面的资料,在我看来是这本书--Pro Git,网上关于Git的教程有非常多,包含当中一些非常优秀的教程.这一系列的博客,主要是记录自己学习Git的经历.以及在这一过程中遇到的一些问题. ...

  2. numpy和matplotlib绘制直方图

    使用 Matplotlib Matplotlib 中有直方图绘制函数:matplotlib.pyplot.hist()它可以直接统计并绘制直方图.你应该使用函数 calcHist() 或 np.his ...

  3. 用户ID的代码生成

    public class Uid { private static final String machineIdString = Integer.toHexString(new Object().ha ...

  4. C++知识点 笔试常见

    C++知识点   一.#include “filename.h”和#include <filename.h>的区别 #include “filename.h”是指编译器将从当前工作目录上开 ...

  5. Atitit.软件仪表盘(8)--os子系统--资源占用监测

    Atitit.软件仪表盘(8)--os子系统--资源占用监测 CPU使用 内存使用 磁盘队列 任务管理器 网络速度 插件列表( 资源管理器插件,浏览器插件,360optim) 启动项管理  (350) ...

  6. 【Android】15.5 例15-3—Notification的各种属性演示

    分类:C#.Android.VS2015: 创建日期:2016-02-29 一.简介 利用这个例子,可测试通知的各种属性以及这些不同属性选项呈现的效果. 另外,在这个例子中,还演示了如何读写SD中的图 ...

  7. cygwin 运行java的一些记录

    javac编译没问题,但是java执行就不行,处理方式如下 其实就是把宿主机下的java.exe在cygwin下搞一个快捷方式 关于路径问题,可以使用cygpath命令进行宿主机和cygwin间的转换 ...

  8. 修改JQM的默认配置属性

    从本文开始,使用 jQuery Mobile 与 HTML5 开发 Web App 系列将会进入第三部分——jQuery Mobile 事件与方法,这其中将会利用之前所讲述的 jQuery Mobil ...

  9. tomcat开启https协议

    1.在tomcat的conf/server.xml 中配置 <Connector port="443" protocol="org.apache.coyote.ht ...

  10. 深入 Spring 系列之静态资源处理

    http://blog.csdn.net/xichenguan/article/details/52794862