c/c++中如何 取得执行存储过程的多结果集...

yeerh yeerh 墨衍会员 · AI 创作全网分发 墨衍智能分发 通过墨衍一键同步至各平台 可同步平台 CSDN微信公众号微博知乎掘金百家号博客园抖音小红书 你的文章也可以这样分发 墨衍会员 ¥399起/年,写一次发全网 我也要 + 加入社区
--创建表
CREATE TABLE userinfo
(
userid int,
username varchar(31)
);
CREATE TABLE areainfo
(
areaid int,
areaname varchar(31)
);
--插入数据
INSERT INTO test.areainfo
(areaid, areaname)
VALUES (1, '上海');

INSERT INTO test.areainfo
(areaid, areaname)
VALUES (2, '成都');

INSERT INTO test.areainfo
(areaid, areaname)
VALUES (3, '北京');

--------------------------------------
INSERT INTO test.userinfo
(userid, username)
VALUES (1, '张三');

INSERT INTO test.userinfo
(userid, username)
VALUES (2, '李四');

INSERT INTO test.userinfo
(userid, username)
VALUES (3, '王王');

----创建存储过程
create procedure getUserArea2
(keyid int)
begin
select * from test.areainfo;
select * from test.userinfo;
end

---------------------------------
--问题..
在c/C++ 中如何调用这个存储过程并获取结果...

代码:

#include <windows.h>
#include <iostream>
#include <string>
#include "mysql.h" //在工程设置中,包含在mysql的sdk中的include文件夹下

using namespace std;
string host="localhost"; //登陆mysql使用的主机名
string user="root"; //登陆用户

string pwd="sa"; //填写自己数据库密码
string dbname="test"; //您要登陆的数据库名
string sqlProcess="call getUserArea(3)"; //sql存储过程语句
unsigned int port=3306; //数据库端口,默认为3306,也可以填写你自己制定的端口
int status; //数据库执行返回的状态,sql语句执行成功返回0

int main()
{
MYSQL *mysql;
mysql=mysql_init(0); //接口,初始化
MYSQL_RES *result;
MYSQL_ROW row; //返回数据行


//连接数据库
if( mysql_real_connect( mysql, host.c_str(), user.c_str(), pwd.c_str(), dbname.c_str(), port, NULL, CLIENT_FOUND_ROWS ) == NULL )
{
cout << "connect failure!" << endl;
return EXIT_FAILURE;
}
else
{
cout << "connect success!" << endl;
}
mysql_set_character_set( mysql, "gbk" );


//执行存储过程调用
status = mysql_query( mysql, sqlProcess.c_str( ) );
if( status != 0 )
{
cout << "query failure!" << endl;
}
cout << "the status is :" << status << endl;

result = mysql_store_result( mysql );
//显示结果 ....此外出错..
while( row = mysql_fetch_row( result ) )
{
cout << row[0] <<"|" << row[1] << endl;
}
}
...全文
评论 4
收藏 已收藏
分享
返回顶部
yeerh
MySQL 57,062 成员 56,759 内容