我在mysql里写了一个存储过程,在mysql里调用时正确的,但是我现在想用C语言调用这个存储过程。代码如下。
#include <windows.h> 
   #include <stdio.h> 
   #include <string.h> 
   #include <mysql.h> 
   //#include "winsock2.h"    
void main() 

MYSQL my_connection;
MYSQL_RES *res_ptr;
//MYSQL_RES *res;
MYSQL_ROW sqlrow;
mysql_init(&my_connection);
if(mysql_real_connect(&my_connection, "localhost", "root","0","abccs", 0, NULL, 0))
{
printf("Connection success\n");
if(mysql_query(&my_connection, "call sp(12)"))
{
printf("select error: %s\n", mysql_error(&my_connection));
}
else
{
res_ptr = mysql_store_result(&my_connection);
if(res_ptr)
{
printf("Retrieved %lu rows\n", (unsigned long)mysql_num_rows (res_ptr));          
while (sqlrow = mysql_fetch_row(res_ptr))//每次输出每一行
{   
unsigned int field_count;
field_count =0;
while(field_count < mysql_field_count(&my_connection))//列
{
printf("%s ", sqlrow[field_count]);field_count++;
}
printf("\n");//换行

if(mysql_errno(&my_connection))
{
printf("Retrive error : %s\n", mysql_error(&my_connection));
}
}
}
mysql_free_result(res_ptr);
}
     mysql_close(&my_connection);
}
出现错误:select error: PROCEDURE abccs.sp can’t return a result set in the given context
在这个程序中用其他普通的sql查询语句如select * from first 是正确的。
这是怎么回事呢,各位高手帮帮忙呀