如何在PB脚本当中获取存储过程的返回值

如题所述

没有见过调用存储过程象调用游标一样的代码,一般我是这样声明的:DECLARE Lproc_1 PROCEDURE FOR
proc_1 @as_int = :li_int OUTPUT ;
execute Lproc_cw_gz_personal_cal ;
变量li_int即为返回的值。如果要同时返回多行的数据,可以使用DATAWINDOW或者是DATASTORE来得到结果集:
string ls_sql_syntax , ls_syntax
string ls_error
integer li_ini
ls_sql_syntax = 'execute proc_1 "' + string ( li_ini ) + '"'
Datastore ldt_item
ldt_item = Create Datastore
ls_syntax = SQLCA.SyntaxFromSQL( ls_sql_syntax '', ls_error )
IF Len( ls_error ) > 0 THEN
MessageBox("提示信息", "创建数据存储窗口语法出现错误!" + ls_error )
RETURN - 1
END IF

ldt_item .Create( ls_syntax, ls_error )
IF Len( ls_error ) > 0 THEN
MessageBox("提示信息", "创建数据存储对象出现错误!" + ls_error )
RETURN - 1
END IF
ldt_item . Settransobject ( sqlca )
ldt_item . retrieve ( )
后面就通常的遍历了!
温馨提示:内容为网友见解,仅供参考
无其他回答

如何在PB脚本当中获取存储过程的返回值
execute Lproc_cw_gz_personal_cal ;变量li_int即为返回的值。如果要同时返回多行的数据,可以使用DATAWINDOW或者是DATASTORE来得到结果集:string ls_sql_syntax , ls_syntax string ls_error integer li_ini ls_sql_syntax = 'execute proc_1 "' + string ( li_ini ) + '"'Datastore ldt...

如何在PB中调用存储过程并取得返回值和输出值
例如存储过程:proc_name,参数sl,返回整型,那么调用和获取返回如下;integer li_returndeclare lpro_test procedure for proc_name @sl=2 output;execute lpro_test;fetch lpro_test into :li_return;

pb 调用存储过程 sqlca.sqldbcode返回值为241怎么解决
在SYBASE ASE 10.X和11.X数据库当中创建一个存储过程deptroster,其有一个输入参数@deptno、两个输出参数@totsal 和 @avgsal、一个RETURN值@number_of_emps以及包含职员姓名和工资的SELECT结果集,可见除了输入参数@deptno外,其他均为输出数据,我们需要在PB脚本中获取,具体代码如下: CREATE PROCEDUR...

powerbuilder9.0如何调用SQL的存储过程,最好举个例子
return -1 end if \/\/如果执行成功 获取结果 FETCH 存储过程名 INTO :返回值1,:返回值2,:返回值3,:返回值4,...,:返回值N; \/\/获取返回值 close 存储过程名; \/\/关闭存储过程 你的参数就是ID,返回值就是NAME,只要存储过程写的没有问题,就可以执行成功 ...

PB 存储过程取值问题
:变量, :变量 ) ;EXECUTE PROCEDURE_NAME ;IF trim(sqlca.sqlerrtext) <> '' Then messagebox( ' 执行Procedure失败! ' + sqlca.sqlerrtext )close PROCEDURE_NAME ;rollback ;else fetch PROCEDURE_NAME into :ls_return;sle_3.text=ls_return close PROCEDURE_NAME ;end if 求采纳 ...

pb 调用两次存储 第二次fetch 返回值 sqlerrtext为 cursor is not ope...
MessageBox("提示信息","换床调用Sp_ChangeBed存储过程失败:"+sqlca.SQLErrText) MessageBox("提示信息","换床调用his_changebed2存储过程失败:"+ls_return2 ) End IF Close his_changebed2; IF li_return2<>1 THEN GOTO Process_Error end if第一次fetch 的sqlca.sqlcode = 0 第二次的返回值是 -1 两...

在pb8.0中怎样调用oracle存储过程和函数
oracle写好的函数可以在SQL语句中直接调用,比如:你写了一个TRIM函数,然后PB端的SQL中可以这样调用:select col1,... from tab_name where trim(col1) ='';进行存储过程调用:PowerBuilder requires a declarative statement to identify the database stored procedure that is being used and a ...

在pb的dw_1窗口控件中如何调用sql的存储过程(窗口中有个查询(cb_1...
数据窗口有几种源,quick select ,sql select ...,最后一个就是存储过程。你可以使用存储过程最为数据窗口的源,这样就能在前台数据窗口中显示了。

在sql server 2005 中怎样建立存储过程与PB 窗口相连?
这样的过程在PB数据窗口调用写法为:exec usp_pro_name @id =:id (这个id为retrieve参数)如果在代码中调用写法为:declare usp_pro_name_i procedure for usp_pro_name id = :id execute usp_pro_name_i;if sqlca.sqlcode = -1 then rollback;messagebox('提示信息','出错!')return end if...

在pb里调用存储过程的时候,如何传递数组变量
你调用的存储过程需要的变量放在一个数组中了是吧,你的数组是怎麼存储变量的,比如:存储过程需要两个变量@year char(4),@month integer,这两个变量是怎麼存储在数组中的呢?比如是这样存储的吧 @year + @month ,这样的格式存储的数组 string ls_string,ls_year integer li_month,li_persion ar...

相似回答
大家正在搜