如何利用偵測連結Database時, 所發生問題. |
答題得分者是:allenchan
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
假設使用的是 ADOConnection:
void __fastcall TForm1::Button1Click(TObject *Sender) { try { ADOConnection1->Open(); } catch(EOleException &e) { String msg; msg.sprintf("Open Database Error [0x%X] [%s]", e.ErrorCode, e.Message.c_str()); ShowMessage(msg.c_str()); } catch(...) { ShowMessage("other error"); } } |
seaturn99
版主 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
|
seaturn99
版主 發表:69 回覆:427 積分:214 註冊:2003-08-25 發送簡訊給我 |
引言: 我沒ADO元件,,,我只想做個連結DB時的保護,避免出現一現系統上的訊息,讓人不懂. 自己寫一個簡單的訊息,來取代錯誤代碼, ex:當DB未開,程式此時無法連結,系統會出現讓人不易懂的代碼,想翻成易懂的訊息(DB未啟動等).kenbcb 您好 : 如果您不在意啟動 Open DB 時若失敗會 delay 幾秒才產生 Exception 的話,allenchan 兄的 try .. catch 方法可以達成, 攔截所有 Exception .. 然後 Show 自己定義的 Message 給 User 知道 .. 我所貼的文章是,利用類似 ping 的手法,去偵測網路上指定 IP port 是否可連接?? 若不行再自行 Show Error Message , 如果 IP port 不通,自然資料庫元件是不可能可以連結的 .. ---- 我只會兩件事,這也不會,那也不會 眼見不一定為真 ---- |
rogan321
高階會員 發表:21 回覆:307 積分:200 註冊:2003-05-15 發送簡訊給我 |
|
kenbcb
中階會員 發表:171 回覆:129 積分:60 註冊:2003-07-15 發送簡訊給我 |
各位大大.
我試得結果,請問這是那裡有錯? 沒有做到防護...還是出現系統訊息.
Database1->AliasName = DSN; Database1->Params->Values["User Name"] = ID; Database1->Params->Values["Password"] = PWD; TableGS->TableName = TableName; try { Database1->Connected = true; } catch(...) { ShowMessage("Database not find."); return; } TableGS->Active = true; |
allenchan
資深會員 發表:10 回覆:306 積分:283 註冊:2004-01-06 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |