Entwickler-Ecke
Datenbanken - Lösch-Problem
sunday_2 - Do 12.09.02 20:07
Titel: Lösch-Problem
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. - Do 12.09.02 20:52
Hi!
Versuch es mal hiermit. ACHTUNG! NICHT GETESTET!
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
sunday_2 - 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. - 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
MrSpock - 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:
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:
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).
sunday_2 - 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
Entwickler-Ecke.de based on phpBB
Copyright 2002 - 2011 by Tino Teuber, Copyright 2011 - 2025 by Christian Stelzmann Alle Rechte vorbehalten.
Alle Beiträge stammen von dritten Personen und dürfen geltendes Recht nicht verletzen.
Entwickler-Ecke und die zugehörigen Webseiten distanzieren sich ausdrücklich von Fremdinhalten jeglicher Art!