pb 通过odbc连接db2数据库(sqlserver也一样),获取存储过程return值(不是out参数值)的问题.
我用odbc连接db2数据库
1、我在数据库中定义的存储过程如下:
CREATE PROCEDURE DB2ADMIN.DB2TEST ( )
------------------------------------------------------------------------
-- SQL 存储过程
------------------------------------------------------------------------
P1: BEGIN
RETURN 999 ;
END P1
2、我在PB中如下调用
INTEGER I
DECLARE PROC_CDF PROCEDURE FOR DB2ADMIN.DB2TEST();
EXECUTE PROC_CDF;
FETCH PROC_CDF INTO :I;
CLOSE PROC_CDF;
每当执行到FETCH的时候就提示我cursor not open,并且没有获取到存储过程的return值,如果我
把存储过程改写成如下样子,就能获取到获取到值,但不是return值;
CREATE PROCEDURE DB2ADMIN.DB2Test ()
------------------------------------------------------------------------
-- SQL 存
------------------------------------------------------------------------
P1: BEGIN
DECLARE tempcursor CURSOR WITH RETURN TO CLIENT FOR SELECT ISSPLIT FROM TB_SPECIAL WHERE
SPECIALNO = '2005100804';
OPEN tempcursor;
END P1
道理是一样的,我可以把上面的游标换成我想要return出来的值,如:select -20098 from 表之
类,我同样能够获得要return出来的值,只不过存储过程中就要在我原来所有return语句前加
上这样一个游标,好烦琐.
我想能不能用数据库中的自定义函数调用存储过程,由数据库函数获取存储过程的return值,并返回
该值,或者通过更好的方法获取存储过程的return值,请各位大虾帮忙解决,谢谢!