Einzelnen Beitrag anzeigen

SusiT

Registriert seit: 15. Mai 2014
29 Beiträge
 
#1

Dataset ADOQuery in ein Clientdataset kopieren

  Alt 6. Okt 2023, 11:33
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

Geändert von SusiT ( 6. Okt 2023 um 21:03 Uhr)
  Mit Zitat antworten Zitat