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

DBGrid 資料重複的查詢

尚未結案
JamesLiang
初階會員


發表:54
回覆:78
積分:31
註冊:2003-02-13

發送簡訊給我
#1 引用回覆 回覆 發表時間:2004-08-09 23:44:09 IP:63.211.xxx.xxx 未訂閱
請教先進.. 我在dbgrid的處理是採用整批存檔的方式,想請教的是如何判定下一筆與上一筆 是否有重複資料當user還沒有存檔前?例如我有兩個欄位是pono 及 drno 我需判 定user是否於下一筆時重複輸入同樣內容的 pono & DRNO再他還沒有按save之前(我不想另開一個table來比對)? Thanks
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#2 引用回覆 回覆 發表時間:2004-08-10 09:04:07 IP:210.61.xxx.xxx 未訂閱
JamesLiang您好 在欄位 pono及drno的OnValidate事件裡都執行下面程式碼(檢查是否己有相同的值存在)
procedure TForm1.Table1PartNoValidate(Sender: TField);
var
  bk:TBookMark;
  fieldname:string;
  fieldvalue:variant;
begin
  bk:=Table1.GetBookmark;
  fieldname:=DBGrid1.SelectedField.FieldName;
  fieldvalue:=DBGrid1.SelectedField.Value;
  Table1.DisableControls;
  try
    Table1.First;
    while not Table1.Eof do
    begin
      if Table1.FieldByName(fieldname).Value=fieldvalue then
      begin
        raise Exception.Create('重覆值');
      end;
    end;
  finally
    Table1.EnableControls;
    Table1.GotoBookmark(bk);
  end;
end;
deity
尊榮會員


發表:90
回覆:876
積分:678
註冊:2003-05-09

發送簡訊給我
#3 引用回覆 回覆 發表時間:2004-08-10 10:21:30 IP:218.15.xxx.xxx 未訂閱
JamesLiang您好: 参考下面,试试看
JamesLiang
初階會員


發表:54
回覆:78
積分:31
註冊:2003-02-13

發送簡訊給我
#4 引用回覆 回覆 發表時間:2004-08-11 02:27:04 IP:63.211.xxx.xxx 未訂閱
Pedro 先生.. 謝謝你的方式,但我發現一個問題是若user輸入第一筆資料時系統會當在那裡, 但若是第二筆以上就沒問題.請教應該如何處理? PS我是寫在DATAMODULE 表單的table內的onvalidate 多謝
pedro
尊榮會員


發表:152
回覆:1187
積分:892
註冊:2002-06-12

發送簡訊給我
#5 引用回覆 回覆 發表時間:2004-08-11 10:26:02 IP:210.61.xxx.xxx 未訂閱
JamesLiang, 終究還是需另一顆Table去做資料驗証的工作 因為當前Insert, 若您在OnVaildate裡去移動cursor, 即當前新輸入的資料就不見了, 所以上段程式碼改成Table2.....Table2指向同一個資料表 另若要加快速度, 不妨使用TQuery, 使用Sql語法, 速度會快很多..
JamesLiang
初階會員


發表:54
回覆:78
積分:31
註冊:2003-02-13

發送簡訊給我
#6 引用回覆 回覆 發表時間:2004-08-12 03:17:58 IP:63.211.xxx.xxx 未訂閱
pedro兄..多謝你的幫忙,我目前解決的方式如下 在此table的newrecord時有一count來計算筆數,當count大於一時才開始執行判定的動作,當發現重複時不用raise的方式而是showmessage後break出去,如此不會陷入迴圈
系統時間:2024-07-08 12:53:50
聯絡我們 | Delphi K.Top討論版
本站聲明
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。
2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。
3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇!