Hola,
Prueba esto:
Código Delphi
[-]
procedure DuplicaReg( Dataset: TDataset);
var
aField : Variant ;
ANomCamps: Variant;
i,numcamps : Integer ;
begin
aField := VarArrayCreate( [0, Dataset.Fieldcount-1], VarVariant);
aNomCamps := VarArrayCreate( [0, Dataset.IBTable1.Fieldcount-1], VarVariant);
numcamps:= Dataset.Fieldcount;
For i := 0 to (numcamps-1) Do
Begin
ANomCamps [i] := Dataset.fields[i].FieldName;
aField[i] := Dataset.fields[i].Value ;
End;
Dataset.append;
For i := 0 to (numcamps-1) Do
Begin
Dataset.FieldByName(ANomCamps[i] ).Value := aField[i ] ;
End;
Dataset.Post;
end;
Puedes utilizar un IBDataset o un IBTable.
No olvides de hacer el commit
Saludos,
Quim Herrera