如何在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 ( )
后面就通常的遍历了!
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 ( )
后面就通常的遍历了!
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询