AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Problem beim Löschen des letzten Datensatzes aus Query
Thema durchsuchen
Ansicht
Themen-Optionen

Problem beim Löschen des letzten Datensatzes aus Query

Ein Thema von spuster · begonnen am 8. Mär 2007 · letzter Beitrag vom 9. Mär 2007
Antwort Antwort
Seite 1 von 2  1 2      
spuster

Registriert seit: 28. Dez 2005
Ort: Aachen
12 Beiträge
 
Turbo Delphi für Win32
 
#1

Problem beim Löschen des letzten Datensatzes aus Query

  Alt 8. Mär 2007, 10:56
Datenbank: Access • Version: 2003 • Zugriff über: ADO
Hallo zusammen,

hab ein Problem, wenn ich den letzten Datensatz aus einer Query mittels Delete löschen möchte. Letzter Datensatz heißt hier der letzte verbliebene Datensatz in der Query. Alle anderen Datensätze wurden vorher ohne Probleme gelöscht.

Die Fehlermeldung lautet:
"Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht. Der angeforderte Vorgang benötigt einen aktuellen Datensatz"

Hier mein vereinfachter Programm-Code:
Delphi-Quellcode:
Query_Picture.First;
while not Query_Picture.Eof do
begin
  Filename := Query_Picture.FieldByName('filename').AsString;
  if not FileExists(Filename) then
    Query_Picture.Delete
  else
    Query_Picture.Next;
end;
Vielleicht hat habt Ihr ja einen Tip, warum es nicht funktioniert.

Gruß,
Ben
Ben
  Mit Zitat antworten Zitat
mkinzler
(Moderator)

Registriert seit: 9. Dez 2005
Ort: Heilbronn
39.861 Beiträge
 
Delphi 11 Alexandria
 
#2

Re: Problem beim Löschen des letzten Datensatzes aus Query

  Alt 8. Mär 2007, 12:32
Wenn du auf dem letzten DS stehst ist EOF true
Markus Kinzler
  Mit Zitat antworten Zitat
spuster

Registriert seit: 28. Dez 2005
Ort: Aachen
12 Beiträge
 
Turbo Delphi für Win32
 
#3

Re: Problem beim Löschen des letzten Datensatzes aus Query

  Alt 8. Mär 2007, 12:54
also kann ich den letzten Eintrag nur ausserhalb der While-Schleife löschen?
Ben
  Mit Zitat antworten Zitat
Benutzerbild von cruiser
cruiser

Registriert seit: 23. Dez 2003
Ort: Königsbrück/Sachsen
455 Beiträge
 
Delphi 7 Enterprise
 
#4

Re: Problem beim Löschen des letzten Datensatzes aus Query

  Alt 8. Mär 2007, 13:31
Wandel die Schleife doch um...
Delphi-Quellcode:
{finde heraus ob es Einträge gibt und bau daraus ein if}
Query_Picture.First;
repeat
  Filename := Query_Picture.FieldByName('filename').AsString;
  if not FileExists(Filename) then
    Query_Picture.Delete
  else
    Query_Picture.Next;
until Query_Picture.Eof;
{ende vom if}
  Mit Zitat antworten Zitat
spuster

Registriert seit: 28. Dez 2005
Ort: Aachen
12 Beiträge
 
Turbo Delphi für Win32
 
#5

Re: Problem beim Löschen des letzten Datensatzes aus Query

  Alt 8. Mär 2007, 14:47
Danke. Werde das ausprobieren.

Ben
Ben
  Mit Zitat antworten Zitat
spuster

Registriert seit: 28. Dez 2005
Ort: Aachen
12 Beiträge
 
Turbo Delphi für Win32
 
#6

Re: Problem beim Löschen des letzten Datensatzes aus Query

  Alt 9. Mär 2007, 13:08
Leider läßt sich das Problem so auch nicht lösen.
Ich glaube es liegt daran, das Delete nach dem Löschen auf den nächsten Datensatz springen möchte. Genau das ist aber nicht möglich, da ja vorher schon alle anderen Datensätze gelöscht wurden.

Bin jetzt ziemlich ratlos..
Ben
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#7

Re: Problem beim Löschen des letzten Datensatzes aus Query

  Alt 9. Mär 2007, 13:45
Zitat von spuster:
Die Fehlermeldung lautet:
"Entweder BOF oder EOF ist True, oder der aktuelle Datensatz wurde gelöscht. Der angeforderte Vorgang benötigt einen aktuellen Datensatz"
Die Fehlermeldung erinnert mich an einen Bug von Delphi 5.
Man musste das ADO Update #2 einspielen, um den Bug zu fixen.

Hast du zufällig ein Eveenthandler (z.B. AfterScroll) angekoppelt oder ein DBGrid mit eigener OnDrawColumnCell ?
Andreas
  Mit Zitat antworten Zitat
spuster

Registriert seit: 28. Dez 2005
Ort: Aachen
12 Beiträge
 
Turbo Delphi für Win32
 
#8

Re: Problem beim Löschen des letzten Datensatzes aus Query

  Alt 9. Mär 2007, 14:05
Nein, hab ich nicht.
Warum?
Ben
  Mit Zitat antworten Zitat
shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#9

Re: Problem beim Löschen des letzten Datensatzes aus Query

  Alt 9. Mär 2007, 15:33
Zitat von spuster:
Nein, hab ich nicht. Warum?
Weil das natürlich zu einem Fehler führen würde, falls man nicht innerhalb dieser Eventhandler speziell die Bedingung Dataset.Eof abprüft.
Also muss man jetzt von einem Bug innerhalb der VCL ausgehen.
Andreas
  Mit Zitat antworten Zitat
spuster

Registriert seit: 28. Dez 2005
Ort: Aachen
12 Beiträge
 
Turbo Delphi für Win32
 
#10

Re: Problem beim Löschen des letzten Datensatzes aus Query

  Alt 9. Mär 2007, 15:42
Ok. Danke. Werde mal sehen wie weit ich mit einem Update komme.
Ben
  Mit Zitat antworten Zitat
Antwort Antwort
Seite 1 von 2  1 2      


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 15:38 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz