如何在powerbuilder中声明并执行storedprocedure?

时间:2016-09-20 11:54:49

标签: powerbuilder

我试图在powerbuilder中声明一个存储过程。之后我选择当前可用的存储过程列表并提供参数。声明语句被粘贴到我的脚本然后我使用EXECUTE test_proc();. powerbuilder显示错误"未定义的变量Test_proc"。 任何人都可以帮我解决这个问题。

2 个答案:

答案 0 :(得分:1)

如果您没有任何代码或知道您正在使用哪个数据库,我只能从PowerBuilder帮助中提供以下内容:

Given this procedure:

CREATE OR REPLACE PROCEDURE spu_edt_object(
o_id_object OUT NUMBER,
o_message OUT VARCHAR2,
a_id_object NUMBER,
a_param VARCHAR2 := NULL,
a_value VARCHAR2 := NULL) as
begin
o_id_object := 12345;o_message := 'Hello World';
end;

The DECLARE statement must use named notation because output parameters are defined to the left of input parameters:

dec{0} o_id_object, id_obiect = 54321
string o_message, param = 'Test'
DECLARE proc_update PROCEDURE FOR spu_edt_object (
a_id_object => :id_object,
a_param => :param)
USING SQLCA;

EXECUTE proc_update;
if SQLCA.SqlCode = 0 then
   //do some error stuff
RETURN -1
end if
FETCH proc_update INTO :o_id_object, o_message;
if SQLCA.SqlCode = 0 then
   //do some error stuff
RETURN -1
end if

答案 1 :(得分:0)

对于使用Native SQL Server客户端的SQL Server,您必须修改declare语句。 PowerBuilder不喜欢括号,除了更改一些符号外,您可能还需要添加@和关键字SELECT ?individual ?HasMobile WHERE { ?individual User:HasMobile "Nokia".} ,如下所示:

OUTPUT

如果您使用的是默认的SQLCA事务对象,则不需要使用。