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

Data Controls中,TDbEdit是否也用處理日期/時間的資料類型呢?

尚未結案
pasphi
一般會員


發表:16
回覆:12
積分:5
註冊:2002-11-29

發送簡訊給我
#1 引用回覆 回覆 發表時間:2005-07-27 15:36:50 IP:202.175.xxx.xxx 未訂閱
我用TDbEdit有以下問題: 1)當輸入不正確的日期時, 如2005/03/0A等, 就會出現error, 即是不能先以手動加檢測以避開"系統出錯" 2)有時某些記錄是不應輸入資料, 但TDbEdit像是不能輸入 null值, 大家是如何處理有關DateTime類型資料呢?
------
DELphi==
cashxin2002
版主


發表:231
回覆:2555
積分:1937
註冊:2003-03-28

發送簡訊給我
#2 引用回覆 回覆 發表時間:2005-07-27 16:50:41 IP:202.62.xxx.xxx 未訂閱
您好﹗    DBEdit元件是資料感知元件﹐其并不是不能輸入Null值﹐而是根据相對應資料欄位的屬性而定義的﹐如果此資料欄位允許Null值﹐DBEdit元件就可以為Null值﹐如果此資料欄位不允許Null值﹐當然的﹐DBEdit元件也就不可以為Null值﹒    小弟一般在處理日期的資料時﹐會在寫入資料庫之前(BeforePost事件)做一些判斷日期格式的動作﹐如果不符合正确的日期格式﹐則Abort﹐範例程式碼如下﹐于資料集元件的BeforePost事件中﹕
Var
  DT: TDateTime;
begin
  if Not TryStrToDate(DBEdit1.Text, DT) then
    begin
      ShowMessage('日期格式錯誤');
      DBEdit1.Clear;
      Abort;
    end;
  if Not TryStrToTime(DBEdit2.Text, DT) then
    begin
      ShowMessage('時間格式錯誤');
      DBEdit2.Clear;
      Abort;
    end;
end;
================================= 有空來瞅瞅我﹗因為我是您的朋友﹐有您真好﹗ ================================
------
忻晟
pasphi
一般會員


發表:16
回覆:12
積分:5
註冊:2002-11-29

發送簡訊給我
#3 引用回覆 回覆 發表時間:2005-08-12 22:48:33 IP:202.86.xxx.xxx 未訂閱
您好, 多謝您的回覆, BeforePost事件的確很有用。 除了可以把所有檢測在這裡進行外, 還可作為儲入資料庫作一些Log的記錄, 以作追縱用戶 輸入資料的情況。 但想補充一點,就是這方法仍不能避免在程式碼運行時 的例外出錯(運行exe時例外)。 DELphi==
------
DELphi==
系統時間:2024-06-24 20:18:35
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!