在数据库一表里,有一字段如“客户编码”(主键),用户一次性输入了多条记录,但在保存时(ADOQuery采用的是批处理方式)有重复客户编码,这时保存要出错(提示主键不能重复),怎样保证把没有重复的记录存如数据库,把重复的提示后删除?还是在每追加一条记录时就判断一下(若是这样应怎样实现)。

解决方案 »

  1.   

    with ADOQuery do
      begin
        Close;
        SQL.clear;
        SQL.add('Select * from table where 客户编码=:t1');
        Parameters[0].value:=edit1.text;
        Open;
        if RecordCount>0 then
         showmessage('已经存在')
         else
         加到表中  end;
      

  2.   

    对不起,你理解错了,我的意思是说:在dbgrid里直接输入,并没有借用edit1.text,在输入中一次输入了好几条记录,在保存时才有我说的提示。
      

  3.   

    晕我又没有说你是用edit控件!我只是举了例子!procedure TForm1.Button1Click(Sender: TObject);
    var
      a:String;
    begin
      a:=Dbgrid1.SelectedField.AsString;
      ShowMessage(a);
    end;你取编号后进行处理!自己变通一下吗!不能完全靠别人的?!