一、
连接数据库的时候需要加上 SQLCA.DBParm = "PBNewSPInvocation='Yes',"这样用declare的时候就不分 有无结果集返回都能取到out的参数了
二、
如果要获取OUTPUT可把procedure作為transaction的外部函數引用(local external function). 新建->standare class-> transation -> local external function -> 右键 -> paste special->sql -> remote sp
定义成external function 不用fatch,直接象普通函数一个调用就行, 打开application -> 属性页中占击->additional properties->variable types->sqlca 下面填上这个uo的名字->ok
以后把带out的存储过程,定义成local external function 然后就象普通函数一样调用.
属性页中占击->additional properties->variable types->sqlca 下面填上这个uo的名字如果你做了以上设置,那么调用时变成这样: sqlca.pro1(prm_s,prm_c,ss)
如果ss是output参数,运行后则 此处ss一定要赋值
ss = 0
sqlca.pro1(prm_s,prm_c,ss)
messagebox("test",ss) //你会看到ss的值
首先正确的声明格式应该是这样
function long test(ref string out_1) RPCFUNC ALIAS FOR "dbo.kentest"
参数带ref 关键字
三、3.1.有时PB自动生成的函数声明中关于SP的名字,可以自己改一下,不要DBA,只要SP的名就可以.
3.2.SP中一定要有return x 语句
3.3.一般pb生成function 声明是返回long的,如果不是可以自己改,就象API声明一样
四、疑问: 不通过上述外部函数的方法而是通过Declare方法,不能得到return值,不知那位高人你能指点一下。
转自:
http://community.csdn.net/Expert/topic/4137/4137305.xml?temp=.9771234