//============
    while not ADOQuery1.Eof do
    begin
      id:= 2005100001+ ADOQuery2.RecordCount;
      with ADOQuery2 do
      begin
        Active:= false;
        SQL.Clear;
        SQL.Text:= 'insert into book_New(LibID) Values(''LB'+inttostr(id)+''','''+ADOQuery1.FieldValues['Name']+''')';
        ExecSQL;  //执行到这里就报错,说有重复字段,可是表里面只有主键有索引
      end;
      ADOQuery1.Next;
     end;

解决方案 »

  1.   

    换用AdoDataset报错:不支持同时对多个数据集的操作。
      

  2.   

    我想是因为你在用adoquery1的时候
    可能就是对每条记录进行操作了以前已经有记录,如果这时候再用insert的话就会有问题了也就是说
    可能你用单个的ADOQuery2就不会出问题了或者你用Update看看可以吗?
      

  3.   

    你看一下你的ADOQuery2.RecordCount直,看这个直是否有跳动就知道了,你估计第一次,到第二次的时候就不行了
      

  4.   

    呵呵,你的代码肯定会出错啊!你看:ExecSQL;  //执行到这里就报错,说有重复字段,可是表里面只有主键有索引因为你的RecordCount返回的都是同一个数值,你应该这样:ExecSQL;  
    Close;
    SQL.Clear;
    SQL.Add('select * from book_new');
    Active:=True;