请问怎么样能使程序不能再一个表中输入两那条同样的记录?
1,如果是设置主健,我用的是access,该怎么样作
2。错误处理该怎样处理?
3。我不想逐条比较表中每个纪录,哪需要比较很多记录和很多字段

解决方案 »

  1.   

    1.在access里创建表的时候就可以设置一个主键。
    2.通过
    try
    do...
    except
    showmessage('error');
    end;3.没有好的办法。
      

  2.   

    我想在错误处理里捕获这个错误,用onposterror事件来做不知怎么做,怎么判断纪录重复了?
      

  3.   


    try
      ……
     //插入的操作
    except
      On EDatabaseError do do
      begin
        showmessage(‘The inserted record is exist’);
        Dataset1.Cancel;
      End;
    end;如果是想在onposterror的话,可以这样写:
    procedure TForm1.ADOTable1PostError(DataSet: TDataSet; E: EDatabaseError;
      var Action: TDataAction);
    begin
      showmessage(E.Message);
      DataSet.Cancel;
      Action := daFail;
    end;
      

  4.   

    onposterror中试试 var adoerrors: errors;
         adoerror: error;
         errorno:integer;
    begin
     errorno:=0;
     adoerrors:=adoCnt.Errors;
     adoerror:=adoerrors.Item[0];
     errorno:=adoerror.number;
     showmessage(inttostr(errorno)) ;
     case errorno of
       -2147467259 :
           begin
                application.MessageBox('编码不能重复!','错误',mb_ok);
                abort;
           end; else
       begin
         application.MessageBox('保存失败!','错误',mb_ok);
         abort;
       end;
     end;  //end case