ADOQuery2.Append;
          ADOQuery2.FieldByName('yyid').Value:=ADOQuery1.FieldByName('id').AsString;
怎样使ADOQuery2里的数据不重复,也就是没有重复的yyid

解决方案 »

  1.   

    在插入前先检查有没有该id,没有则添加,有则不加,或者直接把id设为自动递增
      

  2.   

    可以用主键,也可以每次在添加前检索一下要添的数据是否已经存在了yyid这个字段中,如果已存在,处理一下后再追加。
      

  3.   


    这样我当然知道,我是希望有UpdateBatch之前保证不重复,也就是当ADOQuery2.Append时查询ADOQuery1里是否已经存在这条数据了,如果存在则不append了,退出,如果不存在则继续append,就是查询是否有重复数据,
      

  4.   

    var i:integer;
    s:string;
    begin
    i:=1;
    if adoquery1.IsEmpty then exit;
    s:=ADOQuery1.FieldByName('id').AsString;
          with ADOQuery3 do
          begin
            varBook:=Book;
            DisableControls;
            first;
            while not eof do
             begin
              if FieldByName('yyid').Value=s then
                begin
                    i:=i+1;
                end;
              next;
             end;
            Book:=varBook;
           EnableControls;
          end;
        if I=1 then
        begin
             ADOQuery3.Append;
              ADOQuery3.FieldByName('yyid').Value:=ADOQuery1.FieldByName('id').AsString;
              end;
    end;解决