首页 > 代码库 > MySQL Error: PROCEDURE xmdk.query_all_plan can't return a result set in the given context
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,一次就可以执行多条语句,执行一个存储过程(好多条语句)大致如此。
MySQL Error: PROCEDURE xmdk.query_all_plan can't return a result set in the given context
声明:以上内容来自用户投稿及互联网公开渠道收集整理发布,本网站不拥有所有权,未作人工编辑处理,也不承担相关法律责任,若内容有误或涉及侵权可进行投诉: 投诉/举报 工作人员会在5个工作日内联系你,一经查实,本站将立刻删除涉嫌侵权内容。