用EXEC SQL GetPrice :szNo,:szDeopt,:szPrice output时调试信息: SQLCODE:-179 Cannot use OUTPUT option when passing a constant to stored procedure在一本书上提到要用游标和FETCH 但是没说具体怎么作
main() { exec sql include sqlca exec sql begin declare section char prname[20]; char productno[8];exec sql end declare sectionprintf("Input producno:"); scanf("%s",&producno);exec sql select prname from product where productno=:productno into :prname;printf("Productname: %s\n",prname);exit(); } ?????
-----------------------------------------^^^^^^^^你用什么语言?
select szPrice
用的是c语言
SQLCODE:-179
Cannot use OUTPUT option when passing a constant to stored procedure在一本书上提到要用游标和FETCH
但是没说具体怎么作
{
exec sql include sqlca
exec sql begin declare section
char prname[20];
char productno[8];exec sql end declare sectionprintf("Input producno:");
scanf("%s",&producno);exec sql select prname
from product
where productno=:productno
into :prname;printf("Productname: %s\n",prname);exit();
}
?????
总试不出来,不知道用动态sql语句并利用sqlca来处理不知道行不行
在SQL 2000帮助中确实有一些相关实例
其中有调用存储过程获取返回数据的
例中使用游标和FETCH,这样能够获取用SELECT ... FROM ...形式的返回值
但是这个查询语句限制比较死,不能有把返回参数作为列值返回
而且,更不幸的是,游标和FETCH只能对第一个结果集处理,而存储过程里
大量使用了SELECT语句。
另外有一个例子是直接用DB-Library的函数处理的,例子是可行的,
但是移植到我自己的应用中不能顺利通过,因为我对ESQL/C和DB-Library
都不熟,还请各位继续不吝赐教
而且由于不熟悉,多少感觉不踏实,不知道对错