AdoStoredProc如何带参数使用?

时间:2022-08-27 23:30:26
我用了一个AdoStoredProc(即StoredProc1控件)执行一个Oracle过程:
create or replace procedure ModifyCardID(
    OldCardID G_CARDS.CARD_ID%Type,
    NewCardID G_CARDS.CARD_ID%Type,
    Update1Row Out Number,
    Update2Row Out Number
)
Is
begin
Update G_CARDS set CARD_ID=NewCardID where CARD_ID=OldCardID;
Update1Row:=SQL%ROWCOUNT;
Update ZSGL set KPBH=NewCardID where KPBH=OldCardID;
Update2Row:=SQL%ROWCOUNT;
-- DBMS_OUTPUT.PUT_LINE(Update1Row);
-- DBMS_OUTPUT.PUT_LINE(Update2Row);
end;
/

我在DELPHI中这样写出错,不知应当如何调用?
StoredProc1.Parameters.ParamByName('OldCardID').Value:='x1';
StoredProc1.Parameters.ParamByName('NewCardID').Value:='x2';
StoredProc1.ExecProc;
x3:=IntToStr(StoredProc1.Parameters.ParamByName('Update1Row').Value);
x4:=IntToStr(StoredProc1.Parameters.ParamByName('Update2Row').Value);
错误提示为:“不正常的定义对象,提供了不一致或不完整的信息”。

3 个解决方案

#1


自己UP一下。

#2


StoredProc1的存储过程名设置了吗

#3


StoredProc1.procedurename:='ModifyCardID';
StoredProc1.Parameters.refresh;
StoredProc1.Parameters.ParamByName('OldCardID').Value:='x1';
StoredProc1.Parameters.ParamByName('NewCardID').Value:='x2';
StoredProc1.ExecProc;

#1


自己UP一下。

#2


StoredProc1的存储过程名设置了吗

#3


StoredProc1.procedurename:='ModifyCardID';
StoredProc1.Parameters.refresh;
StoredProc1.Parameters.ParamByName('OldCardID').Value:='x1';
StoredProc1.Parameters.ParamByName('NewCardID').Value:='x2';
StoredProc1.ExecProc;