Das Problem jedoch ist folgender, dass ich nicht nur eine, sondern alle mit der selbigen ReKatID löschen möchte.
mit
delete from tabelle1 where feld1=meinwert;
werden alle Einträge aus Tabelle1 entfernt, wo der Inhalt von Feld1 Meinwert ist.
Es sei denn irgendwelche Constraints oder Trigger sind der Meinung, das darf man so nicht.
Wo genau taucht die Fehlermeldung auf?
in Deinem Sourcecode wird nirgendwo eine Löschung durchgeführt.
Zitat von
haentschman:
//ZQuery.SQL.Clear; //nicht nötig
//ZQuery.Params.Clear; //nicht nötig
Hallo haentschman,
wieso ist das nicht nötig? Es geht doch hierbei um die Vermeidung eventueller Fehler. Ich benutze
SQL.Text und Params nicht nur ein mal im kompletten Quelltext. Mir wurde erklärt, dass das immer eine Prävention zu eventuell auftretenden Fehlern ist.
Jain, das ist notwendig, wenn Du einen bestimmten Inhalt benötigst, Du Dich aber nicht darauf verlassen kannst, daß die Variable den Wert auch wirklich hat.
In diesem Falle wird mit
.SQL.Text:='blabla'
genau dieses erreicht.
Dein Vorgehen ist kein schwerer Fehler aber überflüssig und bevor sich da eine schlechte Angewohnheit breit macht.
(meiner Meinung nach fällt das weit verbreitete
Delphi-Quellcode:
.SQL.Lines.Clear;
.SQL.Lines.Add('blabla');
.SQL.Lines.Add('blubblub');
in die gleiche Kategorie. Da lieber gleich
Delphi-Quellcode:
.SQL.Text:='blabla'+
'blubblub';
Gruß
K-H