当前位置:首页 » 存储配置 » pb执行存储过程

pb执行存储过程

发布时间: 2022-05-19 18:26:51

Ⅰ 如何在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 存储过程取值问题

DECLARE PROCEDURE_NAME PROCEDURE PROCEDURE_NAME ( :变量, :变量 ) ;
EXECUTE PROCEDURE_NAME ;
IF trim(sqlca.sqlerrtext) <> '' Then
messagebox( ' 执行Procere失败! ' + sqlca.sqlerrtext )
close PROCEDURE_NAME ;
rollback ;
else
fetch PROCEDURE_NAME into :ls_return;
sle_3.text=ls_return
close PROCEDURE_NAME ;
end if
求采纳

Ⅲ PB中存储过程的调用

declare login procere for login
@uid=:ls_id
using sqlca ;
execute login;
if sqlca.sqldbcode <> 0 then
rollback;
else
commit;
end if
close login;

Ⅳ 新手提问 关于PB中怎么调用存储过程

declare getinfo1 procere for getinfo ;// 定义过程调用
sqlca.autocommit = false

execute getinfo1;//执行过程,这里是不需要其他参数的
if SQLCA.sqlcode = -1 then
messagebox("","不成功"+'~r~n'+SQLCA.SQLErrText)
rollback;
else
messagebox("","成功")
commit;
end if
close getinfo1;// 关闭调用
看看SQLCA.SQLErrText是什么.

Ⅳ 在pb里调用存储过程的时候,如何传递数组变量

你调用的存储过程需要的变量放在一个数组中了是吧,你的数组是怎么存储变量的,比如:存储过程需要两个变量@year char(4),@month integer,这两个变量是怎么存储在数组中的呢?比如是这样存储的吧 @year + @month ,这样的格式存储的数组
string ls_string,ls_year
integer li_month,li_persion
array a[]
FOR li_count = 1 to LowerBound(arrary) //数组名
ls_string = a[li_count]
li_persion = pos(ls_string,'+')
ls_year = mid(ls_string,1,li_persion - 1)
li_month =integer(mid(ls_string,li_persion + 1 )
DECLARE pc PROCEDURE FOR proc
@year = :ls_year,
@month = :li_month
USING sqlca;

EXECUTE pc ;

NEXT

Ⅵ 简单的存储过程 PB中怎么调用

以下面这个的 SQL SERVER里存储过程为例

CREATEproceredbo.sp_insert(
@returnvaluechar(10)output)
as
insertintot_student(id,name,sex)
values(’100′,’procere’,'1′)
select@returnvalue=‘aaa’
GO

调用方法如下:

Stringls_return
DECLARElogical_procere_namePROCEDUREFORsp_insert
@returnvalue=:ls_returnOUTPUT;
executelogical_procere_name;
fetchlogical_procere_nameinto:ls_return;
closelogical_procere_name;

Ⅶ 在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 procere that is being used and a logical name that can be referenced in subsequent SQL statements. The general syntax for declaring a procere is:

DECLARE logical_procere_name PROCEDURE FOR
Oracle_procere_name(:InParam1,:InParam2, ...)
{USING transaction_object};

Ⅷ PB的存储过程如何针对某一天执行

不知道能不能执行这个存储过程,然后使以前的数据能更新过来。或者能让某天,或者某个时间段的数据更新。
1,不知道能不能执行这个需要看你存储过程是否会造成什么影响,是否会改变数据,而你又不确定改变数据的做法是否正确或者能够还原。
2,使以前的数据能更新过来或者能让某天,或者某个时间段的数据更新。
这个依然看你这个存储过程是怎么写的。你在存储过程里写了按哪些条件更新哪些数据,那么相应的数据才会改变。

————————————————————————
第一次回答:

你的问题不清晰:

1,PB的存储过程是指:在PB中执行的存储过程吗?
2,针对某一天执行是指:该存储过程只在那一天执行吗?还是这个存储过程有个参数,需要你用PB传递一个日期的参数进去?

Ⅸ 如何在PB中执行oracle存储过程并接收返回的数据集

返回一个游标社!
有俩种方法:
一种是声明系统游标,一种是声明自定义游标,然后后面操作一样,参数类型为
in out 或out
(1)声明个人系统游标.(推荐)
create or replace p_temp_procere
(
cur_arg out sys_refcursor; --方法1
)
begin
open cur_arg for select * from tablename;
end
调用
declare
cur_calling sys_refcursor;
begin
p_temp_procere(cur_calling); --这样这个游标就有值了
for rec_next in cur_calling loop
....
end loop;
end;

(2)在包头中申明一个游表类型,然后调用者申明一个这个类型的游标变量,传给返回游标的存储过程 ,存储过程out这个结果集,这种方法很麻烦.游标类型不能像索引表一样使用create or replace type方法来创建,所以只能在包中申明,并且需要使用/来执行,后面的存储过程才认这个游标类型.(不推荐,但是建议要知道并且要会这种方式,毕竟它有它存在的道理)
--定义全局变量
create or replace package pkg_package
as
type type_cursor is ref cursor;
type type_record is record
(
test01 varchar2(32),
test02 varchar2(32),
test03 varchar2(32)
);
end;
/
--创建返回游标的存储过程
create or replace procere p_temp_procere
(
cur_out_arg out pkg_package.type_cursor
)
is
begin
open cur_out_arg for select * from test;
end;
/
--调用
declare
cur_out_arg pkg_package.type_cursor;
rec_arg pkg_package.type_record;
begin
p_temp_procere(cur_out_arg);
fetch cur_out_arg into rec_arg;
dbms_output.put_line(rec_arg.test01);
dbms_output.put_line(rec_arg.test02);
dbms_output.put_line(rec_arg.test03);
end;

Ⅹ PB调用存储过程执行链接服务器错误的问题! 您是如何解决的,望回复!

PB确实是不支持这种写法的,PB调用的存储过程内部应避免分布式查询,我后来用定时作业来解决数据同步问题。

热点内容
副武器脚本 发布:2024-09-21 05:37:30 浏览:126
隐藏频道密码是多少 发布:2024-09-21 05:32:21 浏览:121
触动精灵脚本制作教程 发布:2024-09-21 05:13:14 浏览:399
自己编译autojs 发布:2024-09-21 05:09:40 浏览:358
我的世界电脑版无政府服务器 发布:2024-09-21 04:55:36 浏览:836
时间服务器和笔记本电脑同步 发布:2024-09-21 04:48:04 浏览:762
无权限访问工作组的计算机 发布:2024-09-21 04:26:31 浏览:476
为什么ipad需要密码解锁 发布:2024-09-21 04:06:22 浏览:211
mariadb存储过程 发布:2024-09-21 03:56:05 浏览:515
压缩壳脱壳机 发布:2024-09-21 03:14:33 浏览:94