• MySQL Error: PROCEDURE xmdk.query_all_plan can't return a result set in the given context


      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(),
                           
    0,
                           
    NULL,
                           
    0) == NULL)
    {
        DEBUG_TRACE_ERROR(WSTR(
    "ServerConnect_2,EER:MySQL(%s)连接失败.,%s:%d"), connectstr.c_str(), __WFUNCTION____LINE__);
        
    return -1;
    }

      修改为正确的连接方式:

     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(),
                           
    0,
                           
    NULL,
                           CLIENT_MULTI_STATEMENTS) == 
    NULL)
    {
        DEBUG_TRACE_ERROR(WSTR(
    "ServerConnect_2,EER:MySQL(%s)连接失败.,%s:%d"), connectstr.c_str(), __WFUNCTION____LINE__);
        
    return -1;
    }

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

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

  • 相关阅读:
    Python网络编程 —— 粘包问题及解决方法
    Python网络编程 —— socket(套接字)及通信
    Python网络编程 —— 网络基础知识
    Python
    MySQL 之 数据的导出与导入
    MySQL 之 慢查询优化及慢日志管理
    MySQL 之 索引进阶
    MySQL 之 索引
    MySQL 之 事务
    MySQL 之 表的存储引擎
  • 原文地址:https://www.cnblogs.com/MakeView660/p/7000761.html
Copyright © 2020-2023  润新知