CREATE OR REPLACE procedure p_test ( rtn out number ) as
begin rtn:=899; end p_test;
PB代码如下:
//存储过程 long ll_rtn DECLARE p_test PROCEDURE FOR P_TEST @rtn=0 OUTPUT; execute p_test; if sqlca.sqlcode<>0 then Messagebox('error',sqlca.sqlerrtext) return end if
fetch p_test into :ll_rtn; close p_test; messagebox('inf', "存储过程返回:" +string(ll_rtn) )
结果如果通过PB专用接口可以获取正确的值,但是如果通过OLE DB连接的话,总是获取0,崩溃。PB10 PB12.5测试都是这样的结果,希望指点一下,研究了好久也不行。 ------解决思路---------------------- 声明成这样试试 function long up_config(string a) rpcfunc ALIAS FOR 'up_config' ------解决思路----------------------
没错,存储过程也可以这样声明 ------解决思路----------------------
声明成这样试试 function long up_config(string a) rpcfunc ALIAS FOR 'up_config'
//存储过程 long ll_rtn DECLARE p_test PROCEDURE FOR P_TEST @rtn OUTPUT; execute p_test; if sqlca.sqlcode<>0 then Messagebox('error',sqlca.sqlerrtext) return end if
fetch p_test into :ll_rtn; close p_test; messagebox('inf', "存储过程返回:" +string(ll_rtn) )