各位大俠﹐我的實際應用中遇到這樣一個問題﹐的一個DBGRIDEH控件中實現輸入記錄時判斷前面的輸入中是否已有這個編號的記錄﹐就是編號不能重復﹐因為一些問題﹐不能通過設置主鍵﹐而DBGRIDEH連的數據源也處于批處理狀態﹐所以﹐從表中去查找也不行﹐不知那位大俠﹐有高招﹖﹖﹖

解决方案 »

  1.   

    可以用 locate 判断:
    function TBaoGDForm.CheckInputBaoGuangDanHaoIsExists(Value: string): boolean;
    var
      strSQL: string;
      qryTemp: TADOQuery;
    begin
      Result:= false;
      qryTemp:= TADOQuery.Create(nil);
      qryTemp.Connection:= Adoconnection;
      try
        with qryTemp do
        begin
          Close;
          SQL.Clear;
          strSQL:= 'select 编号 from 表';
          SQL.Add(strSQL);
          Open;
        end;
        if qryTemp.Locate('编号', Value, []) then
        begin
          Result:= true;
        end;
      finally
        qryTemp.Close; qryTemp.Free;  
      end;
    end;
      

  2.   

    to fancier(OP&&(C/C++)) :
     我的數據源是批處理的﹐沒有commits﹐數據根本就沒有入庫﹐查不出來的
      

  3.   

    to kuux(No.1)
     
      能否动态创建一个临时得列表(StringList类型得变量),保存输入记录得編號;
     然后每次在DBGRIDEH控件中實現輸入記錄得同时,和列表中得编号比较。
     完成后释放。