Einzelnen Beitrag anzeigen

Benutzerbild von sx2008
sx2008

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

Re: Übergabe Daten aus MDB an SQL ADOQuery

  Alt 1. Dez 2009, 23:51
Um alle Datensätze einer ADO Tabelle zu löschen:
Delphi-Quellcode:
procedure DeleteADOTable(con:TADOConnection; const tablename:string);
begin
   Assert(Assigned(con));
   con.execute('DELETE FROM '+tablename);
end;
Um einen Datensatz zu kopieren:
Delphi-Quellcode:
procedure CopyRecord(a,b:TDataset);
var
   i : integer;
   f : TField;
begin
   for i:=0 to a.fields.Count-1 do
   begin
      f := b.FindField(a.Fields[i].FieldName);
      if Assigned(f) then
         f.Value := a.Fields[i].Value;
   end;
end;
Um ALLE Datensätze zu kopieren:
Delphi-Quellcode:
procedure CopyAllRecords(a,b:TDataset);
begin
   while not a.Eof do
   begin
      b.Append; // neuen, leeren Datensatz anhängen
      CopyRecord(a,b);
      b.Post; // abschicken
      a.Next;
   end;
end;
Und jetzt noch das Ganze zusammenbauen.
Du brauchst jeweils eine ADOConnection für jede Datenbank.
1.) alte Daten löschen
DeleteADOTable(ADOConnectionA, 'MeineTabelle'); 2.) zwei ADOQuerys erstellen
Delphi-Quellcode:
ADOQueryA.SQL.Text := 'SELECT * FROM MeineTabelle';
ADOQueryA.Open;
Das Gleiche für ADOQueryB und jeweils das Property Connection zuweisen.
3.) Daten kopieren
CopyAllRecords(ADOQueryA, ADOQueryB); Das wäre so ganz grob das "Kochbuch".
fork me on Github
  Mit Zitat antworten Zitat