oracle ADOStoredProc 提供不一致或不完全的資訊導致參數物件不適當地被拒 |
缺席
|
鈴鐺
初階會員 發表:33 回覆:81 積分:35 註冊:2002-03-13 發送簡訊給我 |
請問動態 call oracle store procedure 的方法?
因為我試了下列三種方式, 第一種偶有成功, 但不知是否有高手可以告知最正確的方法呢?
第一種方法我代入較複雜的 stored procedure 就會發生
"提供不一致或不完全的資訊導致參數物件不適當地被拒" 錯誤.
我猜英文版訊息為"Parameter Object Defined Improperly" 方法一: 用 Refresh,
with ADOStoredProc1 do begin ProcedureName := 'Proc1'; Parameters.Refresh; Parameters.ParamByName('P1').Value := 123; Parameters.ParamByName('P2').Value := 456; ExecProc; ShowMessage('Ret:' String(Parameters.ParamByName('Param1').Value); end;方法二: 用 CreateParameters, with ADOStoredProc1 do begin ProcedureName := 'Proc1'; Parameters.Refresh; Parameters.CreateParameter('P_RET',ftInteger,pdReturnValue,0,null); Parameters.CreateParameter('P1',ftInteger,pdInput,0,123); Parameters.CreateParameter('P2',ftInteger,pdInput,0,456); ExecProc; ShowMessage('Ret:' String(Parameters.ParamByName('P_RET').Value); end;方法三: 用 AddParameters, 發表人 - 鈴鐺 於 2002/09/03 15:41:27 |
andersonhsieh
版主 發表:33 回覆:531 積分:439 註冊:2002-06-10 發送簡訊給我 |
奇怪了,我利用你說的第一種及第二種方式都不會有問題,但第三種試不出來,將code貼給你參考看看
procedure TForm1.Button2Click(Sender: TObject); begin with ADOStoredProc1 do begin ProcedureName := 'TEST'; Parameters.Refresh; Parameters.ParamByName('P1').Value := 123; ExecProc; ShowMessage('Ret:' string(Parameters[0].Value)); end; end; procedure TForm1.Button3Click(Sender: TObject); begin with ADOStoredProc1 do begin ProcedureName := 'TEST'; Parameters.Refresh; Parameters.CreateParameter('P1', ftFloat, pdInput, 0, 123); ExecProc; ShowMessage('Ret:' string(Parameters[0].Value)); end; end; create or replace function TEST(P1 IN NUMBER) return number is begin RETURN 1; end TEST;@@~~飛翔在天際的精靈~~@@ 發表人 - andersonhsieh 於 2002/09/04 01:06:10
------
@@~~飛翔在天際的精靈~~@@ |
鈴鐺
初階會員 發表:33 回覆:81 積分:35 註冊:2002-03-13 發送簡訊給我 |
|
andersonhsieh
版主 發表:33 回覆:531 積分:439 註冊:2002-06-10 發送簡訊給我 |
|
鈴鐺
初階會員 發表:33 回覆:81 積分:35 註冊:2002-03-13 發送簡訊給我 |
|
andersonhsieh
版主 發表:33 回覆:531 積分:439 註冊:2002-06-10 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |