一个表中有字段“员工号”,其为主键。在delphi中可否实现他的唯一性检验?
若检测到不唯一时,提示请重新输入。我写的程序如下:
with DataModuleMain.Tab_employee do
begin
        first;
          while not eof do
          begin
              if DBEdit2.Text=FieldByName('员工号').Value then
             
                  ShowMessage('该员工号已经存在,请重新输入');
              else
                  next;
          end;
 end;
我觉得这个办法很笨,更要命的是通不过,请大家指教。
谢谢。

解决方案 »

  1.   

    with adoquery do
        begin
          close;
          sql.clear;
          sql.add('select * from tablename where 员工号='''+dbedit2.text+'''');
          try
            open;
              except
              execsql;
            end;
          if recordcount>0 then
                 begin
                ShowMessage('该员工号已经存在,请重新输入');
                 exit;
                end;
         end;
      

  2.   

    edit1.text:=adoquery1.fieldbyname('员工号').asstring;或用dbgrid