全國最多中醫師線上諮詢網站-台灣中醫網
發文 回覆 瀏覽次數:1532
推到 Plurk!
推到 Facebook!

ADO stored procedure 輸出問題

尚未結案
stanely_ling
一般會員


發表:5
回覆:3
積分:1
註冊:2004-06-23

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-10-26 23:47:27 IP:61.231.xxx.xxx 未訂閱
各位好 作業系統:win2000 資料庫:oracle 8i 假如我呼叫一支stored procedure統計資料 我在stored procedure中定了幾個輸出變數 將我所要的統計資料指到變數中 那我要如何取輸出值? 有什麼方式可以不管他有多少輸出都可以傳出來的嗎? 感謝囉!
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-10-27 13:45:37 IP:61.218.xxx.xxx 未訂閱
hi,stanely_ling:    1.讀取store procedure的回傳值,跟assign值給他是一樣的做法,不過,你要在呼叫完store procedure才去取值.
  ...
  StoredProc.ExecProc;
  Result:=StoredProc.ParamByName(ReturnParamName).AsString; //<--取值
  ....
2."有什麼方式可以不管他有多少輸出都可以傳出來的嗎?",如果你是指回傳的是一個dataset的話,那可以參考這裡: http://delphi.ktop.com.tw/topic.php?TOPIC_ID=48618 http://delphi.ktop.com.tw/topic.php?TOPIC_ID=50515
stanely_ling
一般會員


發表:5
回覆:3
積分:1
註冊:2004-06-23

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-10-28 20:52:58 IP:218.168.xxx.xxx 未訂閱
謝謝change.jian的回答 我有另一個問題是 一般都是透過APSERVER執行 stored procedure 我遭遇到一個問題是 我將資料送到AP上時 在AP上adostoredproc.prepare 將storedprocedure的參數送回client 可是我在AP上下adostoredproc.prepare 發現無法取得參數值 再次請教,謝謝
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-10-29 09:35:28 IP:61.218.xxx.xxx 未訂閱
??搞不清楚你的問題 1.你在client端呼叫apserver的store procedure?還是什麼?(可以直接這樣呼叫嗎?) 2.你的ap是指什麼?ApServer?Application-client? 3.出現的錯誤訊息是什麼?
stanely_ling
一般會員


發表:5
回覆:3
積分:1
註冊:2004-06-23

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-10-31 22:13:48 IP:218.160.xxx.xxx 未訂閱
抱歉 ap指的是ApServer 在ApServer上有個副程式是用來給client呼叫 執行stored procedure的動作 此副程式在ApServer上取得stored procedure的name以及要輸入的值後 在副程式中執行adostoredprocedure.exec的指令 然後將回傳訊息丟回給client 我的問題就是在ApServer的那支副程式上,我先執行 adostoredprocedure.prepare 然後 adostoredprocedure.parameters.count 將取得的參數數目丟回(我先確定可以取得) 結果都是0 也就是說好像沒有作用 是不是漏掉什麼? 抱歉之前沒把問題說清楚
change.jian
版主


發表:29
回覆:620
積分:439
註冊:2003-06-02

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-11-04 09:28:46 IP:61.218.xxx.xxx 未訂閱
好像回到原問題了.你的問題還是繞在如何把store procedure回傳的參數值回傳給client端.依你所述,你是回傳adostoredprocedure.parameters.count,這個代表的是這個store procedure 有多少個參數,跟store procedure回傳什麼值沒有關係,你要取得store procedure的回傳值,然後把這個值回傳到client端.    如果仍不清楚,建議你把有問題那段在apserver上的code貼上來,比較好幫你找到答案    
引言: 抱歉 ap指的是ApServer 在ApServer上有個副程式是用來給client呼叫 執行stored procedure的動作 此副程式在ApServer上取得stored procedure的name以及要輸入的值後 在副程式中執行adostoredprocedure.exec的指令 然後將回傳訊息丟回給client 我的問題就是在ApServer的那支副程式上,我先執行 adostoredprocedure.prepare 然後 adostoredprocedure.parameters.count 將取得的參數數目丟回(我先確定可以取得) 結果都是0 也就是說好像沒有作用 是不是漏掉什麼? 抱歉之前沒把問題說清楚
stanely_ling
一般會員


發表:5
回覆:3
積分:1
註冊:2004-06-23

發送簡訊給我
#7 引用回覆 回覆 發表時間:2004-11-04 21:41:26 IP:61.231.xxx.xxx 未訂閱
經過測試後 在APSERVER上 adostoredprocedure.prepare 沒有作用(oracle 8.1.7) 要用adostoredprocedure.refresh 才可以。 感謝change.jian的回應喔
系統時間:2024-06-02 6:44:07
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!