如何在PB中调用存储过程并取得返回值和输出值的相关推荐
答案:2 悬赏:20
解决时间 2021-03-12 15:22
- 提问者网友:全員惡人
- 2021-03-12 03:22
如何在PB中调用存储过程并取得返回值和输出值的相关推荐
最佳答案
- 二级知识专家网友:伤口狠精致
- 2021-03-12 03:36
没有见过调用存储过程象调用游标一样的代码,一般我是这样声明的: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 ( )
后面就通常的遍历了!
全部回答
- 1楼网友:抱不住太阳的深海
- 2021-03-12 04:20
1.ouput参数返回值
create procedure [dbo].[nb_order_insert](
@o_buyerid int ,
@o_id bigint output
)
as
begin
set nocount on;
begin
insert into [order](o_buyerid )
values (@o_buyerid )
set @o_id = @@identity
end
end
2.存储过程中获得方法:
declare @o_buyerid int
declare @o_id bigint
declare @result bit
exec @result = [nb_order_insert] @o_buyerid ,o_id output
3.select 数据集返回值
create procedure [dbo].[nb_order_select](
@o_id int
)
as
begin
set nocount on;
select o_id,o_buyerid from [order]
where o_id = @o_id
go
我要举报
如以上问答内容为低俗、色情、不良、暴力、侵权、涉及违法等信息,可以点下面链接进行举报!
大家都在看
推荐资讯