当前位置: 首页 > 编程语言 > C++ > 正文

c / c + +中如何调用mysql存储过程

时间:2015-05-23

mysql5.0支持存储过程后,现在mysql6.0Alpha 版本也是可用的。6.0不仅支持大型数据库(如 oracle和如此的大多数功能(如存储过程、视图、触发器、作业等,并修复了这些功能存在的bug,6.0.1 版还支持windows 64 位 和表空间。

C/c + + 要访问 mysql,只是一些简单的常用操作,c嵌入式简单查询、插入、更新和其他操作的使用可以。这些语句作为业务复杂、完整的业务功能需要的sql 操作,很大一部分是嵌入c 代码c 代码会导致更多和更复杂的不清楚这一次自然的存储过程来封装所有数据库逻辑思想,简单地通过调用mysql 存储的过程 c 接口可以实现他们的目标大大减少工作量的c 程序员,但也容易处理前端业务逻辑和数据库处理逻辑分离。在这里只调用存储的过程c 语言的简单方法。

1、首先创建一个表用于存储用户信息

Create table student(  
      id int auto_increment,  
      name varchar(20),  
      age tinyint,  
      remark varchar(50),  
       primary key(id)  
);

2、插入几条用户信息

Insert into student values(1,"zhouys",90, "");  
commit;

3、查看刚刚插入的用户信息

mysql> select * from student;  
+------+-----------+------+----------+  
| id   | name   | age | remark |  
+------+-----------+------+----------+  
|    1 | zhouys |   90 |        |  
+------+-----------+------+-----------+  
1 row in set (0.00 sec)  
      
mysql>

4、创建存储过程

delimiter //  
      
create procedure querystudent(  
       in in_id int ,   #0- Character ID 1-digital id      
       #  
       out out_ret int,                # Returns the result   
       out out_name varchar(20),        # First name 
       out out_age   int                # Age       
)  
label_a:begin
       declare v_name varchar(20) ;  
       declare v_age tinyint ;  
       # Parameters determine   
       if (in_id<=0) then
              set out_ret=-1; #id error  
              leave label_a;  
       end if;  
                  
       SELECT name,age into v_name,v_age from student where't found  
              leave label_a;  
       end if;      
                  
       set out_ret=0;  
       set out_name=v_name;  
       set out_age=v_age;  
end;  
//  
delimiter ;

5、C语言调用存储过程的方法步骤:

5.1、Mysql 的句柄初始化

if(!mysql_init(&mysql))  
       {  
              printf("mysql_init failed!\n");  
              return 0;  
       }

返回栏目页:http://www.bianceng.cn/Programming/cplus/