Hallo die Damen und Herren,
mich beschäftigt seit geraumer Zeit ein triviales Problem wie ich vermute.
Ich habe eine ADOQuery, gefüllt mit Daten und möchte diese an ein Clientdataset übergeben.
Dies gelingt aus nicht nachvollziebaren Gründen nicht.
Eine Variante wäre Folgende:
Delphi-Quellcode:
procedure TDataContainer.fillupdataset;
var
i : Integer;
s : String;
TempProvider : TDataSetProvider;
ClientDataSet1 : TClientDataSet;
begin
ClientDataSet1 := TClientDataSet.Create(nil);
TempProvider := TDataSetProvider.Create(nil);
TempProvider.DataSet := fDataContainerDbThread.ADOQuery;
i := TempProvider.DataSet.RecordCount; // ist in Ordnung, i ist größer 0
ClientDataSet1.Data := TempProvider.Data;
i := ClientDataSet1.RecordCount; // hier ist in i immer 0. Die Übergabe klappt nicht
TempProvider.Free;
end;
Habe schon eine ganze Menge verschiedene Variante probiert aber es klappt nicht.
Was ist der einfachste Weg, Daten in ein CDS zu duplizieren?
Auch wenn ich das CDS mit einem Provider verknüpfe gibt es nicht den gewünschten Erfolg.
Zusatzfrage:
Alle Komponenten werden in Runtime Created. Welchen Owner kann man hier angeben. Dieser Sollte vom Typ TComponent sein, aber TComponent habe ich nicht, da es keine Formularanwendung ist
Viele Grüße und vielen Dank