E文好的请查看原文,菜鸟级翻译,欢迎批评指正!
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、首先创建一个表用于存储用户信息
?
1 2 3 4 5 6 7 |
Create table student( |
2、插入几条用户信息
?
1 2 |
Insert into student values(1,"zhouys",90, ""); |
3、查看刚刚插入的用户信息
?
1 2 3 4 5 6 7 8 9 |
mysql> select * from student; |
4、创建存储过程
?
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 |
delimiter // |
5、C语言调用存储过程的方法步骤:
5.1、Mysql 的句柄初始化
?
1 2 3 4 5 |
if(!mysql_init(&mysql)) |
5.2、连接到MySQL数据库
?
1 2 3 4 5 6 7 |
//login or connect |
5.3、调用存储过程
?
1 2 3 4 |
//call |
5.4、查询返回值及输出参数值
?
1 2 3 4 5 6 7 8 9 10 11 12 13 |
mysql_query(&mysql, "SELECT @ret,@ out_name,@ out_age "); |
5.5、获取结果值
?
1 2 3 |
while((record = mysql_fetch_row(results))) { |
常规的存储过程将只返回结果,^_^。
5.6、释放资源和mysql连接句柄
?
1 2 |
mysql_free_result(results); |
6、结论
Mysql 的存储过程可以实现相当强大的功能,这里只是一些基本的用法,希望能给你一些帮助。也欢迎分享......
7、个人使用经验心得
像C#调用都可以绑定输出参数,直接通过输出参数得到值,但是c++中使用prepare绑定输出参数,却返回以下错误信息:
Error Code: 1414. OUT or INOUT argument 2 for routine knockout_dbo.ko_SignUpYoungBoxer is not a variable or NEW pseudo-variable in BEFORE trigger