Einzelnen Beitrag anzeigen

Gambit

Registriert seit: 28. Mai 2003
680 Beiträge
 
Delphi 7 Professional
 
#2

Re: ADO: mehrfache Zugriffe auf Foxpro Tabellen: Fehermeldun

  Alt 30. Sep 2004, 21:15
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
  Mit Zitat antworten Zitat