时间:2021-07-01 10:21:17 帮助过:16人阅读
C语言调用
#include <stdio.h>
#include "mysql.h"
int main()
{
MYSQL *my_connection;
MYSQL_RES *res_ptr;
MYSQL_ROW sqlrow;
char buf[100];
my_connection = mysql_init (NULL);
//下面连接的最后一个参数必须为CLIENT_MULTI_STATEMENTS,不然就会报错select error: PROCEDURE *** can’t return a result set in the given context
my_connection = mysql_real_connect (my_connection, "localhost", "root", "root", "test", 0, NULL, CLIENT_MULTI_STATEMENTS);
sprintf (buf, "call cal_grade(%d,%d,@t,%f,%s,%s)", 10, 10, 0.3, 123, 456);
if ( mysql_query (my_connection, buf) )
sprintf (stderr, mysql_error (my_connection));
else
{
//获得返回参数@t,@t是传出参数
mysql_query (my_connection, "select @t");
res_ptr = mysql_store_result (my_connection);
if (res_ptr)
{
sqlrow = mysql_fetch_row (res_ptr);
if (!strcmp (sqlrow[0], "-1"))
printf ("平时分不在范围之内\n");
else if (!strcmp (sqlrow[0], "-2"))
printf ("卷面分不在范围之内\n");
else
printf ("总分为:%s\n", sqlrow[0]);
}
mysql_free_result (res_ptr);
}
mysql_close (my_connection);
return 0;
}
版权声明:本文为博主原创文章,未经博主允许不得转载。
C语言调用mysql的存储过程
标签:c语言 存储过程 mysql 数据库