Autor Beitrag
sunday_2
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 7.0
BeitragVerfasst: Do 12.09.02 20:07 
Hi Leute,

ich habe ein Problem beim Löschen von Datensätzen. Folgendes habe ich vor:
In einem EditFeld steht eine Zahl (z.B. 3). Ich möchte jetzt in der Datenbank das Feld "Spieltag" nach dieser Variablen durchsuchen und alle Datensätze, die im Feld "Spieltag" diese Variable gespeichert haben, löschen.
Irgendwie kriege ich das aber nicht auf die Kette.

Wäre für hilfe echt dankbar.

Gruß Sunday
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 12.09.02 20:52 
Hi!

Versuch es mal hiermit. ACHTUNG! NICHT GETESTET!

ausblenden Quelltext
1:
2:
3:
4:
5:
6:
  table1.First;
  repeat
    if table1.FieldByName('spieltag').AsString = edit1.text
    then table1.Delete
    else table1.Next;
  until table1.eof;


MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
sunday_2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 7.0
BeitragVerfasst: Do 12.09.02 22:29 
Hi Peter,

ich habe dein Tip mit der repeat-Schleife ausprobiert. Die Datensätze werden auch wie gewünscht gelöscht. Leider hängt sich das Programm dabei auf.
Hast Du vieleicht noch eine Idee?

Gruß Sunday :?
Christian S.
ontopic starontopic starontopic starontopic starontopic starontopic starhalf ontopic starofftopic star
Beiträge: 20451
Erhaltene Danke: 2264

Win 10
C# (VS 2019)
BeitragVerfasst: Do 12.09.02 22:48 
Hi!

Du bist aber pingelig! :wink:

Nein, leider habe ich keine Idee. Ich habe mir gerade noch einmal die verwendeten Funktionen in der Hilfe angeschaut und auch nichts gefunden, was einen Fehler produzieren könnte.

Gibt Dir Delphi keine Näheren Informationen zu dem Fehler, der auftritt?
Das könnte hilfreich sein.

MfG,
Peter

_________________
Zwei Worte werden Dir im Leben viele Türen öffnen - "ziehen" und "drücken".
MrSpock
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 262



BeitragVerfasst: Fr 13.09.02 08:38 
Hallo sunday_2,

wenn er sich aufhängt, bedeutet das wahrscheinlich, dass die Abbruchbedingung Table1.EOF nie eintritt. Der Code, so wie Peter Lustig ihn geschrieben hat, sollte aber auf jeden Fall eine EOF Bedingung erzeugen. Überprüfe bitte noch einmal, ob du den Code korrekt abgeschrieben hast.

Alternativ kannst du das Ganze auch mit einer TQuery machen, mit der SQL Anweisung:

ausblenden Quelltext
1:
DELETE FROM MyTable WHERE spieltag=:spTag					


Vor der Anweisung ExecSQL muss der Parameter gesetzt werden oder du erzeugst den SQL String interaktiv über:

ausblenden Quelltext
1:
qryLoeschSpt.SQL := 'DELETE FROM MyTable WHERE spieltag=' +Edit1.Text;					


Falls Spieltag jedoch ein StringFeld ist, muss Edit1.Text ersetzt werden durch QuotedStr(Edit1.Text).

_________________
Live long and prosper
MrSpock \\//
sunday_2 Threadstarter
ontopic starontopic starontopic starontopic starontopic starontopic starontopic starontopic star
Beiträge: 101


Delphi 7.0
BeitragVerfasst: Di 17.09.02 14:28 
Habe den Fehler gefunden.

War meine schuld

:oops: Ein Schreibfehler.

Aber trotzdem danke. Das Programm läuft.

Gruß Sunday