Habe mittlerweile eine-allerdings unbefriedigende-Lösung gefunden:
wenn ich eine ADOConnection benutze, kann ich die Datensätze löschen mit:
ADOConnection.Execute('delete from mdb');
Danach kann ich dann wie beschrieben fortfahren:
Delphi-Quellcode:
DB_DataModul.MDBQuery.Open;
DB_DataModul.MDBQuery.Edit;
while not DB_DataModul.ZQueryDBMaster.Eof do
begin
DB_DataModul.MDBQuery.Append;
DB_DataModul.MDBQuery.FieldByName('Nr').AsInteger:= DB_DataModul.ZQueryDBMaster.FieldByName('Nr').AsInteger;
DB_DataModul.MDBQuery.Post;
DB_DataModul.ZQueryDBMaster.Next;
end;
DB_DataModul.MDBQuery.Close;
Das Problem, welches sich aber aus der Foxprotabelle ergiebt ist, dass die Datensätze nicht wirklich gelöscht werden, sondern nur als gelöscht makiert werden. Bei jedem Durchgang wird die Datenbank dadurch um die Erstellgröße größer. Bei einer
BDE Datenbank werden die frei gewordenen Plätze wenigstens wieder belegt wodurch die Datenbank zwar nie kleiner aber auch bei einem Durchgang nicht unwesentlich größer wird. Eben nur durch die hinzugefügten Datensätze.
Eine Möglichkeit die Foxprodatenbank auch physisch zu leeren gibts wohl so nicht...falls jemand was anderes weiß, immer her damit...
Gruß
Gambit