我已经做了一些搜索和审查的C语言编程的API,它是在这里得到了从存储过程的参数:如何通过C编程API
http://dev.mysql.com/doc/refman/5.1/en/c-api-prepared-statement-functions.html
它的大部分面向对获取数据行回来,这很容易。该存储过程是被称为像这样从C程序(我知道我应该绑定参数我会...):
sprintf(cmd, "CALL get_graph_data(\"%s\", \"%s\");", symbol, scope);
if (mysql_query(conn, cmd)) {
fprintf(stderr, "%s\n", mysql_error(conn));
exit(1);
}
res = mysql_use_result(conn);
if(res == NULL) { ; // how do I get output parameters in this case ? umm...
} else {
num_fields = mysql_num_fields(res);
while ((row = mysql_fetch_row(res)) != NULL)
{
do stuff
}
}
,我呼吁看起来像这样的存储过程:
create procedure get_graph_data (
symbol varchar(20),
period varchar(5),
OUT status SMALLINT,
OUT emsg varchar(255)
)
所以 - 我无法弄清API调用来获取两个输出参数status和emsg。另外,在sproc生成零行的情况下(某些用户输入验证必须在db中进行,而不必额外调用它),那么'res'将返回NULL,因此不确定如何获取输出参数那种情况...
TIA!
考虑在程序参数 – triclosan 2012-02-08 12:00:54