資料check |
尚未結案
|
rita880
一般會員 發表:38 回覆:27 積分:13 註冊:2003-04-15 發送簡訊給我 |
|
timhuang
尊榮會員 發表:78 回覆:1815 積分:1608 註冊:2002-07-15 發送簡訊給我 |
|
rita880
一般會員 發表:38 回覆:27 積分:13 註冊:2003-04-15 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言:一般而言,資料重複,只要您有設Primary Key,資料庫均會幫我們檢查,並且顯示錯誤訊息,我們不須寫程式去控制,只是此訊息是英文的而已,當然可以將此訊息中文化,請參考這兩篇文章: BDE:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=26413 ADO:http://delphi.ktop.com.tw/topic.php?TOPIC_ID=28106 ~小弟淺見,參考看看~引言: 請使用 function FileExists(const FileName: string): Boolean; 檢查!!因為是要check table中所有的欄位, 所以此種方法也可行嗎? 若可以是否能 將程式的寫法放上來, 因為您這樣表達, 我還是不會 ...tks
------
~小弟淺見,參考看看~ |
比爾丐自
初階會員 發表:33 回覆:115 積分:29 註冊:2003-02-14 發送簡訊給我 |
|
RageCaster
一般會員 發表:1 回覆:21 積分:4 註冊:2003-06-02 發送簡訊給我 |
|
rita880
一般會員 發表:38 回覆:27 積分:13 註冊:2003-04-15 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言:提供您一個方法試式看:引言: 請問 : 若資料在寫檔之前, 想check新增的資料在檔案是否已存在, 要如何做比較好呢? tks 我想你們都誤會了我的意思, 因為某些因素所以必須將所有的欄位皆chek一次 是否有重複, 至於key的部份, 我在資料庫中已有設unique key所以沒問題, 主要是輸入的所有資料一定要與querytable中的資料再check一次是否有重複, 不過由你們介紹的資料中, 又讓我學會了一些技巧, tks
------
~小弟淺見,參考看看~ |
rita880
一般會員 發表:38 回覆:27 積分:13 註冊:2003-04-15 發送簡訊給我 |
引言:你的方式, 我可以稍為引用, 不過, 我想問題, 我可能還要講想清楚 因為我的一筆record中所以的field都要當做key, 但因為欄位太多了, 所以只有引用幾個比較重要的欄位 流水號, 所以在檔案寫入時, 我須要同時check所有的欄位, 只要有一個field不一樣, 才能真正的寫檔, 否則會造成, 雖然key值不一樣, 但實際上資料是完全一樣的.....tks引言:提供您一個方法試式看:引言: 請問 : 若資料在寫檔之前, 想check新增的資料在檔案是否已存在, 要如何做比較好呢? tks 我想你們都誤會了我的意思, 因為某些因素所以必須將所有的欄位皆chek一次 是否有重複, 至於key的部份, 我在資料庫中已有設unique key所以沒問題, 主要是輸入的所有資料一定要與querytable中的資料再check一次是否有重複, 不過由你們介紹的資料中, 又讓我學會了一些技巧, tks |
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 你的方式, 我可以稍為引用, 不過, 我想問題, 我可能還要講想清楚 因為我的一筆record中所以的field都要當做key, 但因為欄位太多了, 所以只有引用幾個比較重要的欄位 流水號, 所以在檔案寫入時, 我須要同時check所有的欄位, 只要有一個field不一樣, 才能真正的寫檔, 否則會造成, 雖然key值不一樣, 但實際上資料是完全一樣的.....tks哦!您是要在編修的這筆資料的所有欄位作比對,再提供您一個方法參考: procedure TForm1.Table1BeforePost(DataSet: TDataSet); var I, J: Integer; begin for I := 0 to Table1.FieldCount - 1 do for J := 0 to Table1.FieldCount - 1 do begin if I <> J then if Table1.Fields[I].AsString = Table1.Fields[J].AsString then raise Exception.Create('有資料重覆,請重新輸入!'); end; end;~小弟淺見,參考看看~
------
~小弟淺見,參考看看~ |
rita880
一般會員 發表:38 回覆:27 積分:13 註冊:2003-04-15 發送簡訊給我 |
|
channel
尊榮會員 發表:67 回覆:707 積分:854 註冊:2002-05-02 發送簡訊給我 |
引言: 謝謝channel的幫忙...... 可能我解釋的不好, 比如說一個table的唯一key是所有欄位組合而成, 因此 就沒有設key, 所以在一筆recrod要寫入時, 須判斷檔案中是否有完全相同的資 料存在.....不知這樣說, 你是否能了改呢? 再次謝謝你不厭其煩的幫忙 >>< face="Verdana, Arial, Helvetica"> 在BeforePost的事件寫這一段程式:var qry: TQuery; begin qry := TQuery.Create(nil); with qry do try Close; SQL.Clear; SQL.Add('Select * From TableName Where Field1 Field2 Field3 .... = :xField'); ParamByName('xField').AsString := DataSet.FieldByName('Field1').AsString DataSet.FieldByName('Field2').AsString DataSet.FieldByName('Field3').AsString ......; Open; if DataSet.State in [dsInsert] then if RecordCount > 0 then raise Exception.Create('資料重複!') finally Free; end; end;這一段大致的意思如下: 您Table的唯一key是所有欄位組合而成,而沒有設key,那就在條件式(Where)把所有的欄位相加,然後傳入新增完的所有欄位值相加去搜尋Table的資料是否有存在。 ~小弟淺見,參考看看~ 發表人 - channel 於 2003/06/18 10:29:36
------
~小弟淺見,參考看看~ |
rita880
一般會員 發表:38 回覆:27 積分:13 註冊:2003-04-15 發送簡訊給我 |
引言: 在BeforePost的事件寫這一段程式:謝啦,var qry: TQuery; begin qry := TQuery.Create(nil); with qry do try Close; SQL.Clear; SQL.Add('Select * From TableName Where Field1 Field2 Field3 .... = :xField'); ParamByName('xField').AsString := DataSet.FieldByName('Field1').AsString DataSet.FieldByName('Field2').AsString DataSet.FieldByName('Field3').AsString ......; Open; if DataSet.State in [dsInsert] then if RecordCount > 0 then raise Exception.Create('資料重複!') finally Free; end; end;這一段大致的意思如下: 您Table的唯一key是所有欄位組合而成,而沒有設key,那就在條件式(Where)把所有的欄位相加,然後傳入新增完的所有欄位值相加去搜尋Table的資料是否有存在。 ~小弟淺見,參考看看~ 發表人 - channel 於 2003/06/18 10:29:36 |
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |