Du scheinst, wie Papaschlumpf73 schreibt, auf dem letzten Datensatz zu stehen.
Probiere mal Folgendes aus:
Delphi-Quellcode:
procedure TForm1.CopyDataSetToCDS(Source: TDataSet; Dest: TClientDataSet; CloseSource: boolean);
var
dsProvider: TDataSetProvider;
inscount: Integer;
begin
dsProvider := TDataSetProvider.Create(nil);
try
dsProvider.DataSet := Source;
dsProvider.GetRecords(-1, inscount, 0); // !!! Lade alle Records !!!
Dest.SetProvider(dsProvider);
Dest.Open;
finally
FreeAndNil(dsProvider);
end;
if CloseSource then
Source.Close;
end;