例外處理 |
答題得分者是:Stallion
|
solid098
一般會員 發表:16 回覆:14 積分:6 註冊:2007-02-15 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
你的問題應該是在資料插入到資料庫前先行檢查才對吧!而不是在資料庫新增時才確定值是否過大!況且這個「值」過大的定義是啥也跟你所定義的欄位有關,你的欄位定義是smallint, integer, bigint...等等狀況都有所不同。
if ( not 各欄位的值都符合資料庫的欄位 ) then begin 顯示錯誤訊息 離開 end; try 開啟資料庫連線 try adoquery1.ExecSQL; Except 顯示新增資料時發生錯誤訊息 關閉程式。 finally 關閉資料庫連線 end; ===================引 用 solid098 文 章=================== 為什麼我這樣下的例外處理無法抓到錯誤,我前面是INSERT資料,但我想在寫入資料庫之前做判斷是否有值過大,如過大想關閉程式 不知道未什麼當SQL有錯誤他不會做例外處理 try adoquery1.ExecSQL; Except On E: EDataBaseError do close; end; |
solid098
一般會員 發表:16 回覆:14 積分:6 註冊:2007-02-15 發送簡訊給我 |
我所謂的值過大在於,我DB只給1byte可是他卻寫入2byte
===================引 用 Stallion 文 章=================== 你的問題應該是在資料插入到資料庫前先行檢查才對吧!而不是在資料庫新增時才確定值是否過大!況且這個「值」過大的定義是啥也跟你所定義的欄位有關,你的欄位定義是smallint, integer, bigint...等等狀況都有所不同。 ?if ( not 各欄位的值都符合資料庫的欄位 )? then ?begin ?? 顯示錯誤訊息 ?? 離開 ?end; ?try ? 開啟資料庫連線 ? try ? adoquery1.ExecSQL; ? Except ?? 顯示新增資料時發生錯誤訊息 ?? 關閉程式。 ?finally ? 關閉資料庫連線 ?end; ===================引 用 solid098 文 章=================== 為什麼我這樣下的例外處理無法抓到錯誤,我前面是INSERT資料,但我想在寫入資料庫之前做判斷是否有值過大,如過大想關閉程式 不知道未什麼當SQL有錯誤他不會做例外處理 try adoquery1.ExecSQL; Except On E: EDataBaseError do close; end; |
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
問題是一樣的!
在資料庫輸入前,就可以先以程式碼的方式檢測。 ===================引 用 solid098 文 章=================== 我所謂的值過大在於,我DB只給1byte可是他卻寫入2byte ===================引 用 Stallion 文 章=================== 你的問題應該是在資料插入到資料庫前先行檢查才對吧!而不是在資料庫新增時才確定值是否過大!況且這個「值」過大的定義是啥也跟你所定義的欄位有關,你的欄位定義是smallint, integer, bigint...等等狀況都有所不同。 ?if ( not 各欄位的值都符合資料庫的欄位 )? then ?begin ?? 顯示錯誤訊息 ?? 離開 ?end; ?try ? 開啟資料庫連線 ? try ? adoquery1.ExecSQL; ? Except ?? 顯示新增資料時發生錯誤訊息 ?? 關閉程式。 ?finally ? 關閉資料庫連線 ?end; ===================引 用 solid098 文 章=================== 為什麼我這樣下的例外處理無法抓到錯誤,我前面是INSERT資料,但我想在寫入資料庫之前做判斷是否有值過大,如過大想關閉程式 不知道未什麼當SQL有錯誤他不會做例外處理 try adoquery1.ExecSQL; Except On E: EDataBaseError do close; end; |
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
|
kevin2004
資深會員 發表:18 回覆:463 積分:416 註冊:2005-05-29 發送簡訊給我 |
|
Stallion
版主 發表:52 回覆:1600 積分:1995 註冊:2004-09-15 發送簡訊給我 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |