線上訂房服務-台灣趴趴狗聯合訂房中心
發文 回覆 瀏覽次數:1370
推到 Plurk!
推到 Facebook!

用ibx元件存取interbase,若有錯誤有ErrorCode來判斷錯誤型態嗎?

答題得分者是:P.D.
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-10-20 00:09:29 IP:211.73.xxx.xxx 未訂閱
請教大家: 用ado元件去存取access的資料庫的table時,可在ado元件的onPostError事件或onDeleteError事件來補捉ErrorCode,然後以ErrorCode來判斷錯誤型態及錯誤原因,請問用ibx元件存取interbase,若有錯誤有ErrorCode來判斷錯誤型態及錯誤原因嗎?若沒有該用什麼來判斷錯誤型態及錯誤原因呢(因為要顯示中文錯誤訊息)
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-10-21 01:50:45 IP:61.71.xxx.xxx 未訂閱
引言: 請教大家: 用ado元件去存取access的資料庫的table時,可在ado元件的onPostError事件或onDeleteError事件來補捉ErrorCode,然後以ErrorCode來判斷錯誤型態及錯誤原因,請問用ibx元件存取interbase,若有錯誤有ErrorCode來判斷錯誤型態及錯誤原因嗎?若沒有該用什麼來判斷錯誤型態及錯誤原因呢(因為要顯示中文錯誤訊息)
InterBase並沒有支援中文介面, 所以要想有中文訊息, 除非自己寫code InterBase會發生錯誤不外乎在於connection, open, applyupdate, commit 等這些動作, 所以可以利用
procedure Tform1.....
    var errmsg: string;
        errchn: string;
begin
   try
     .....
   except
     on E:Exception do begin
        errmsg:= E.Message;
        if errmsg='....' then errchn:= '錯誤1'
        else if errmsg='xxxxx' then errchn:= '錯誤2'
        ....
        showmessage(errchn);
     end;
   end;
end;
以上是一個基本的寫法, 不過我個人認為, 就算顯示出了中文錯誤訊息, 使用者 未必能夠有所對應方法, 依我的經驗, 只要出現錯誤視窗, 使用者第一個就電話 通知來了, 所以我比較希望直接引用該原文錯誤(errmsg), 這樣除錯會比較容易, 因為錯誤狀況太多, 我們不可能全部都含括入內!
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-10-21 16:14:29 IP:211.73.xxx.xxx 未訂閱
P.D你好: 1.你說:InterBase並沒有支援中文介面, 所以要想有中文訊息, 除非自己寫code,是否表示其他資料庫軟體能顯示中文錯誤訊息? 2.INTERBASE 6.5 VER與7.0有沒有什麼差別? 3.interbase replication server的功能是什麼,很重要嗎?若隨時用windows檔案總管來複製資料庫檔(.gdb)或用ibx備份資料庫檔(.gdb),是不是與interbase replication server的功能是一樣?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#4 引用回覆 回覆 發表時間:2005-10-22 23:36:26 IP:61.71.xxx.xxx 未訂閱
引言: P.D你好: 1.你說:InterBase並沒有支援中文介面, 所以要想有中文訊息, 除非自己寫code,是否表示其他資料庫軟體能顯示中文錯誤訊息? 沒錯, 如 MS_SQL的錯誤訊息就是全中文化 2.INTERBASE 6.5 VER與7.0有沒有什麼差別? 沒用過7, 不過我的資訊上, 6.X 與 7.X 主要有一些結構定義有增強, 還有6.X使用gdb, 7.0似乎改了副檔名 3.interbase replication server的功能是什麼,很重要嗎?若隨時用windows檔案總管來複製資料庫檔(.gdb)或用ibx備份資料庫檔(.gdb),是不是與interbase replication server的功能是一樣? 我不清楚interbase replication server是啥! 我目前都是用FireBrid, 不過InterBase是檔案類型的SQL資料庫, 所有的系統參數都是定義在GDB檔中, 所以基本上只要複製該檔就可以帶著世界PAPAGO, 不像MS-SQL的參數是定義在MS-SQL的系統主表中, 光複製一個MDF檔, 到其他的SQLSERVER上未必可以啟動的了, 所以複製這一項對Interbase來說並沒有那麼重要與複雜!
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#5 引用回覆 回覆 發表時間:2005-10-25 15:11:23 IP:211.73.xxx.xxx 未訂閱
P.D你好: 1.你說現在都用FIREBIRD,請問用delphi的ibx元件去存取,容易嗎? 2.用delphi的ibx元件去存取interbase,若interbase是在別台電腦上,用IBdataset元件去存取資料且不使用IBdataset元件的快取可以嗎? 3.那台安裝interbase server的電腦,可以是win xp HomeEdition版嗎?若不行那最少是須什麼版的OS
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#6 引用回覆 回覆 發表時間:2005-10-25 21:30:16 IP:61.71.xxx.xxx 未訂閱
引言: P.D你好: 1.你說現在都用FIREBIRD,請問用delphi的ibx元件去存取,容易嗎? 與InterBase都一樣可以使用, 我現在就是使用ibx來連結FireBird 2.用delphi的ibx元件去存取interbase,若interbase是在別台電腦上,用IBdataset元件去存取資料且不使用IBdataset元件的快取可以嗎? 一般不使用cache是很冒險的事情, 就好像cpu取消cache的功能一樣 3.那台安裝interbase server的電腦,可以是win xp HomeEdition版嗎?若不行那最少是須什麼版的OS Interbase只要透過3050port及TCP/IP可以通行, 就算是WIN98一樣可以做為SERVER的資料供應端
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#7 引用回覆 回覆 發表時間:2005-10-25 23:42:17 IP:211.73.xxx.xxx 未訂閱
P.D你好: 1.interbase不是也支援Netbuie及Ipx/px網路協定 2.若安裝interbase server的電腦與其他電腦用TCP/IP連結,而安裝interbase server的電腦也可上網(ip非固定),這樣運作會不會有問題呢?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#8 引用回覆 回覆 發表時間:2005-10-26 20:26:30 IP:61.71.xxx.xxx 未訂閱
引言: P.D你好: 1.interbase不是也支援Netbuie及Ipx/px網路協定 2.若安裝interbase server的電腦與其他電腦用TCP/IP連結,而安裝interbase server的電腦也可上網(ip非固定),這樣運作會不會有問題呢?
Interbase確實支援, 但 NETBEUI 在 WINxp下早已不支援(雖然還可以外掛進來), 但NETBEUI的連結存在太大的漏洞, 所以十分不建議使用, 而且NETBEUI可以利用TCP來達成, 因此不要太在意這個介面 另外 IPS/IPX是 NetWare 的產物, window提供這個介面純粹是為了早期 NetWare的用戶, InterBase雖也有支援, 但支援Novell第幾版的我就不清楚, 因為 Net 4.x版是一個很失敗, 極度不穩定的產品, 而到 5.x版發展成龐然大物, 仍難與微軟相抗衡, 終告步入末途, 實際除了舊有客戶持續沿用外, 還有人會想用NetWare? 答案應該是 No 吧! 另外, InterBase是不管是否固定或撥接制, 只要能"持續"連線, InterBase就可以通行, 只是用非固P制, 會產生比較多困擾, 因為遠端client的連線方式是 203.204.192.122:D:\Mydata\MyDatabase.gdb 的方式, 如果你是用撥接做為主機端, 但在client端的是不是每次都要改變參數, 實際的操作是不容許這麼玩的, 這就是為什麼要固P, 不過並不代表非固P者不可用, 只是TCP/IP的控制上有給他一點複雜, 非本篇所能討論的事情,為簡單行事, 採用固P是最直接的, 而且目前在台灣申請固P已非很困難, 不妨從此方向考量!
ry_lee
高階會員


發表:368
回覆:251
積分:123
註冊:2002-03-19

發送簡訊給我
#9 引用回覆 回覆 發表時間:2005-10-27 00:16:22 IP:211.73.xxx.xxx 未訂閱
P.D你好: 謝謝你的指導, 1.如果採用tcp/ip,如果安裝interbase server的電腦使用固定ip,client端的電腦是否也要一個固定的ip呢? 2.client端的電腦存取interbase server的資料庫(.gdb),是否在設定時採140.117.10.2:D:\Mydata\MyDatabase.gdb 的方式呢?(140.117.10.2是interbase server的ip) 3.client端的電腦在存取interbase server的資料庫(.gdb)時,是否不須在對要存取的資料庫設別名(如存取paradox的檔案要事先設別名)?
P.D.
版主


發表:603
回覆:4038
積分:3874
註冊:2006-10-31

發送簡訊給我
#10 引用回覆 回覆 發表時間:2005-10-27 10:32:13 IP:61.71.xxx.xxx 未訂閱
引言: P.D你好: 謝謝你的指導, 1.如果採用tcp/ip,如果安裝interbase server的電腦使用固定ip,client端的電腦是否也要一個固定的ip呢? client端只要能連上internet就可以, 其他就不重要了(建議必須是有穩定連結) ! 2.client端的電腦存取interbase server的資料庫(.gdb),是否在設定時採140.117.10.2:D:\Mydata\MyDatabase.gdb 的方式呢?(140.117.10.2是interbase server的ip) 沒錯, client的連結語法 主機的IP:主機INTERBASE資料檔所在的絶對路徑\主機的資料檔.GDB 如果是內部連結, 則主機IP就可以指定 192.168.1.XXX:D:\Mydata\MyDatabase.gdb 3.client端的電腦在存取interbase server的資料庫(.gdb)時,是否不須在對要存取的資料庫設別名(如存取paradox的檔案要事先設別名)? InterBase好像也有提供別名的用法, 不過我沒有研究, 似乎使用別名可以比較讓其他人不易拆解實際ip的位址, 我都是直接使用ip方式, 再把ip內容加密, 不讓別人可以很輕易的讀取內容資料
scotthsiao
高階會員


發表:13
回覆:324
積分:147
註冊:2005-02-01

發送簡訊給我
#11 引用回覆 回覆 發表時間:2005-10-27 13:27:37 IP:210.66.xxx.xxx 未訂閱
在 firebird 的目錄裡有一個檔案 aliases.conf ,可以加入別名 。 例如加入以下一行 : employee = C:\Program Files\Firebird\Firebird_1_5\examples\employee.fdb 就可以用 140.117.10.2:employee 來連結資料
系統時間:2024-06-27 2:40:27
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!