Einzelnen Beitrag anzeigen

Benutzerbild von SoD
SoD

Registriert seit: 9. Dez 2008
Ort: Oberasbach
33 Beiträge
 
Delphi 2007 Professional
 
#1

Alle Datensätze mit veraltetem Datum löschen

  Alt 30. Jul 2009, 15:17
Datenbank: Paradox • Version: 7 • Zugriff über: BDE
Hallo DPler,

ich hatte die Idee einen TV Show Reminder in Delphi zu schreiben, der auf eine simple Datenbank zugreift. Mir ist bewusst, dass Paradox verrufen ist, aber das ist nun mal Vorgabe.

Laut dem Delphi-Treff kann man einen Datensatz aus der Table einfach mit .Delete löschen. Soweit so gut, nur jetzt bekomm ich ständig Exceptions "Bei leerer Datenmenge nicht möglich". Ich hab versucht das mit If-Abfragen abzufangen, was folgendermaßen aussieht:

Delphi-Quellcode:
if not Table1.Eof = true then begin
    if Table1.FieldByName('Datum').AsDateTime < Now then //Abgelaufene Daten automatisch löschen
  begin
    if MessageDlg('Veraltete Datensätze gefunden. Löschen?',mtConfirmation,mbYesNo,0,mbYes) = mrYes then
      for I := 0 to Table1.Fields.Count - 1 do
        Table1.Delete;
  end;
  end;
Chaotisch, ich weiß, aber ich arbeite dran. Wird beim Fragedialog Nein Gedrückt passiert nichts: Gut! Aber sobald die Table Datensätze enthält und mit einem Klick auf Ja die veralteten Datensätze entfernt werden, kommt genannter Fehler, falls dadurch jeder Datensatz entfernt wird. Ich vermute mal, da steckt wieder irgendwo der Wurm in der Schleife, nur find ich ihn nicht wirklich.

Über Tipps wär ich sehr dankbar!

MfG,
SoD
Keinen Bock anständig zu debuggen?
try stuff;
except ShowMessage('Bug, bug, bug!!! Dont do this shit!');
end;
  Mit Zitat antworten Zitat