如何复制一条记录

解决方案 »

  1.   

    在客户端用ADO没有办法直接复制,只有存到变量里,在APPEND记录,将变量重新写入。在数据库端可以用INSERT INTO TABLE1 SELECT * FROM TABLE2 WHERE ... 字段必须是一样的,如果不一样,要一个一个的指定好才行,不过可以批量插入。
      

  2.   

    adoquery1.clone(Tadoquery(datasource.dataset));
    clientdataset1.data:=clientdataset2.data;
    楼主指的是不是这个意思!
      

  3.   

    用数据可以实现
    procedure Tform1.AppendCurrent(Dataset:Tdataset);
    Var
      aField : Variant ;
      i      : Integer ;
    Begin
     //创建一个variant类型的数组
      aField := VarArrayCreate([0,DataSet.Fieldcount-2],VarVariant);  // 把数据集当前数据读入数组中
      For i := 0 to (DataSet.Fieldcount-2) Do
      Begin
         aField[i] := DataSet.fields[i+1].Value ;
      End;  DataSet.Append ;  // 从数组中读出数据倒数据集中
      For i := 0 to (DataSet.Fieldcount-2) Do
      Begin
         DataSet.fields[i+1].Value := aField[i] ;
      End;
    End;procedure TForm1.Button1Click(Sender: TObject);
    begin
       self.AppendCurrent(ADOQuery1);
    end;