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

如何用Delphi讀取Oracle的Console?

尚未結案
alex_wu
一般會員


發表:6
回覆:10
積分:3
註冊:2003-03-20

發送簡訊給我
#1 引用回覆 回覆 發表時間:2003-03-31 15:28:38 IP:202.145.xxx.xxx 未訂閱
請問各位大大.. 我用TADOStoredProc執行一個store procedure後, 在store procedure有寫一堆訊息到console. 請問如何將他讀出來呢?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#2 引用回覆 回覆 發表時間:2003-03-31 15:48:16 IP:61.219.xxx.xxx 未訂閱
console ? OEM console 嗎 ? 可否說清楚一些...    
alex_wu
一般會員


發表:6
回覆:10
積分:3
註冊:2003-03-20

發送簡訊給我
#3 引用回覆 回覆 發表時間:2003-03-31 15:56:43 IP:202.145.xxx.xxx 未訂閱
比如說在Store procedure中跑一個迴圈 然後寫 put('msg:' || i);..... 這樣子的訊息 後我怎麼把他讀出?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#4 引用回覆 回覆 發表時間:2003-03-31 20:11:40 IP:218.32.xxx.xxx 未訂閱
1. 如果你用 sqlplus(dos) or sqlplusw(windows),
   dbms_output.put_line('...') 可將 message print 到前端來.
2. 如果你要用 Delphi Database 元件, 就沒這麼容易, 
   可透過 Stored Procedure output parameter 傳回 varchar2,
   因我目前手邊電腦無相關資料, 可否先請你將 Stored Procedure
   PL/SQL Code 參數段就可(如create procedure ...([parametes...]);)
   先 po 上,這樣比較快.
alex_wu
一般會員


發表:6
回覆:10
積分:3
註冊:2003-03-20

發送簡訊給我
#5 引用回覆 回覆 發表時間:2003-04-01 08:15:18 IP:202.145.xxx.xxx 未訂閱
真是感謝這位大大肯幫我的忙...^_^.. 我的Store Procedure參數段如下: procedure pro01 (i_blocid in varchar2, o_flag out varchar2, i_emrk in varchar2 default 'N') 接下來怎麼做呢?
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#6 引用回覆 回覆 發表時間:2003-04-01 09:33:00 IP:61.219.xxx.xxx 未訂閱
引言: 真是感謝這位大大肯幫我的忙...^_^.. 我的Store Procedure參數段如下: procedure pro01 (i_blocid in varchar2, o_flag out varchar2, i_emrk in varchar2 default 'N') 接下來怎麼做呢?
1. 如果 varchar2 夠用 (max length 2000 bytes), 則 :
pro01 (i_blocid in varchar2,o_flag out varchar2,i_emrk in varchar2 default 'N', msg out varchar2) as
[declation...]
begin
...
msg:=msg||'....';
end;
2. 如果你想用 Oracle Collection (varray/table object) 來回傳 message, 我用 BDE 測試, TStoredProc 一 Active 就當出 Delphi, 或許 >, class="code"> /* using table collection */ CREATE TYPE MyMessage AS TABLE OF VARCHAR2(20); / create or replace FUNCTION RETMSG RETURN MyMessage as C MyMessage; begin C := MyMessage('HELLO 1'); C.EXTEND; c(2):='HELLO 2'; RETURN C; end; / create or replace procedure PRETMSG (C out MyMessage) as begin C := MyMessage('HELLO 1'); C.EXTEND; c(2):='HELLO 2'; end; / ================================= /* using array collection */ CREATE TYPE VMsgs AS VARRAY(20) OF VARCHAR2(20); / create or replace FUNCTION VRETMSG RETURN VMsgs as C VMsgs := VMsgs(); begin C.EXTEND; C(1) := 'HELLO 1'; C.EXTEND; c(2):='HELLO 2'; RETURN C; end; / create or replace procedure PvRETMSG (C out VMsgs ) as begin C := VMsgs(); C.EXTEND; C(1) := 'HELLO 1'; C.EXTEND; c(2):='HELLO 2'; end; /
alex_wu
一般會員


發表:6
回覆:10
積分:3
註冊:2003-03-20

發送簡訊給我
#7 引用回覆 回覆 發表時間:2003-04-01 09:54:26 IP:202.145.xxx.xxx 未訂閱
謝謝你的建議.眼看答案快出來了說.. 但我在SqlPlus下會變成這樣: SQL> ed 已將 file afiedt.buf 寫入 第 2 行被截斷 1* CREATE TYPE MyMessage AS TABLE OF VARCHAR2(20); 2 / Message 154 not found; product=PLUS33; facility=SP1 SQL> ed 已將 file afiedt.buf 寫入 第 2 行被截斷 1* CREATE TYPE VMsgs AS VARRAY(20) OF VARCHAR2(20); 2 / Message 154 not found; product=PLUS33; facility=SP1 這是啥原因ㄚ?
alex_wu
一般會員


發表:6
回覆:10
積分:3
註冊:2003-03-20

發送簡訊給我
#8 引用回覆 回覆 發表時間:2003-04-01 10:16:58 IP:202.145.xxx.xxx 未訂閱
謝謝版主... 我已經可以Create Type 和 Procedure了 只是我用TADOStoredProc Run下去會出現如下 Exception: raise exception class EOleExcpetion with message 'ORA-06550' L=line 1 column 7; PLS-00306:wrong number or type of argumens in call to 'PRETMSG' 我的程式參數C的DataType是"ftInterface"這有關係嗎? 想把他改成"frArray"也不行說.... 發表人 - alex_wu 於 2003/04/01 10:24:46
Mickey
版主


發表:77
回覆:1882
積分:1390
註冊:2002-12-11

發送簡訊給我
#9 引用回覆 回覆 發表時間:2003-04-01 10:50:06 IP:61.219.xxx.xxx 未訂閱
嘗試用 AQOQuery : SQL 'select RETMSG as MSG from dual'<= use function  包成一個 cursor 看看... (我用 array collection type 試的, 似乎沒問題) Delphi 可能認不得 對應的 TField.DataType... 小弟的功力已用完了 src="http://delphi.ktop.com.tw/loadfile.php?TOPICID=7540183&CC=168637"> 發表人 - Mickey 於 2003/04/01 10:59:46
alex_wu
一般會員


發表:6
回覆:10
積分:3
註冊:2003-03-20

發送簡訊給我
#10 引用回覆 回覆 發表時間:2003-04-01 11:05:35 IP:202.145.xxx.xxx 未訂閱
謝謝這位大大..    雖然最後的效果並沒有做出來. 但您已經讓我獲益良多~ 謝謝您囉!! 對了,您說把他包成一個
系統時間:2024-11-23 10:10:15
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!