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

關於 OleException handler

尚未結案
hkguy80
一般會員


發表:20
回覆:21
積分:8
註冊:2004-09-06

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-11-18 19:42:28 IP:218.189.xxx.xxx 未訂閱
我新增record 時 遇到oleException, 其大意為我 新增了 相同record, 我解決的方法為先select 1 次,如有相同record 則 跳過新增record. 但我想這個方法不大好,希望採用exception handler. 但我只知expception 的 message, 卻不知其Id. 問題是, 若我只跟據exception 的 message 去決定 handle 某個expcetion. 會否因該message是 中文或英文而導致未能handle 同一個expcetion ? 我是否應根據其 expcetion Id 來決定 handle 它或 不 handle 它? 又, 我如何找到其 exception Id 呢? 謝謝!
allenchan
資深會員


發表:10
回覆:306
積分:283
註冊:2004-01-06

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-12-09 02:01:55 IP:61.62.xxx.xxx 未訂閱
您可以試著攔截 EOleException 看看。
void __fastcall TForm1::Button1Click(TObject *Sender)
{
    try
    {
        ADOQuery1->SQL->Clear();
        ADOQuery1->SQL->Add("insert into test (a, b) values('1', '2')");
        ADOQuery1->ExecSQL();
    }
    catch(EOleException &e)
    {
        String msg;
        /* e.ErrorCode 就是你的錯誤代碼 */
        msg.sprintf("Error Code = [0x%X], Error Message = [%s]", e.ErrorCode, e.Message.c_str());
        ShowMessage(msg.c_str());
    }
    catch(...)
    {
        ShowMessage("other error");
    }
}
發表人 - allenchan 於 2004/12/09 02:04:20
系統時間:2024-06-29 5:42:58
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!