Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

Registriert seit: 16. Feb 2008
Ort: Baden-Württemberg
2.332 Beiträge
 
Delphi 2007 Professional
 
#2

AW: Daten aus TQuery in TADOQuery verwenden

  Alt 1. Okt 2013, 10:12
so einfach geht das nicht.
Du musst die Daten Feld für Feld und Datensatz für Datensatz kopieren.
Hier erst mal eine Prozedur die einen Datensatz kopiert:
Der Parameter TagMask dient dazu ggf. gezielt einzelne Felder vom Kopieren auszunehmen. (Parameter kannst du ignorieren)
Delphi-Quellcode:
// Kopiert gleichnamige Felder von Src nach Dst
procedure CopyDataSetRecord(Src,Dst: TDataSet; TagMask:Integer=0);
var
   i: Integer;
   fSrc,fDst: TField;
begin
   for i := 0 to Src.FieldCount-1 do
   begin
      fSrc := Src.Fields[i];
      fDst := Dst.FindField(fSrc.FieldName);

      if Assigned(fDst) and ((fSrc.Tag and TagMask)=0) then
      begin
         fDst.Value := fSrc.Value;
      end;
   end;
end;
Dazu gehört eine Schleife über alle Datensätze:

Delphi-Quellcode:
while not Query1.Eof do
begin
  AdoQueryZiel.Append; // neu leeren Datensatz anhängen
  CopyDataSetRecord(Query1, AdoQueryZiel); // befüllen
  AdoQueryZiel.Post; // und wegschreiben
  Query1.Next; // zum nächsten Datensatz
end;
fork me on Github
  Mit Zitat antworten Zitat