Datenbank: Oracle • Version: Express 4.0.2.00.09 • Zugriff über: dbExpress
deleteanweisung für mehrere Datensätze
Liste der Anhänge anzeigen (Anzahl: 4)
Hallo zusammen,
ich möchte mehrere Datensätze gleichzeitig löschen. Über eine Listview mit Checkboxen wähle ich die entsprechenden Datensätze aus (Bild1).
Delphi-Quellcode:
Ich lasse mir zur Kontrolle s (Bild2) und den sql-Text(Bild3) ausgeben.
var i : integer;
s : string; first: Boolean; SQL : string; begin s := ''; first := true; for i := 0 to lv.Items.Count - 1 do if LV.Items[i].Checked then begin if first then s := LV.Items[i].Caption else s := s + Format(', %s',[LV.Items[i].Caption]); first := false; end; if Length(s) > 0 then begin SQL := Format('DELETE FROM artikel WHERE art_nummer IN (%s) ',[s]); ShowMessage(s); q1.Close; q1.SQL.Clear; q1.SQL.text := sql; ShowMessage(q1.SQL.Text); q1.ExecSQL; end; end; Es schein alles ok zu sein. Mit execsql kommt aber ein Fehler (Bild4), den ich nicht nachvollziehen kann. Vielleicht hat jemand eine Idee? LG Roland |
AW: deleteanweisung für mehrere Datensätze
ISt das Feld art_nummer evtl. vom Typ String ((var)char)?
|
AW: deleteanweisung für mehrere Datensätze
Der Typ für art_nummer ist varchar
|
AW: deleteanweisung für mehrere Datensätze
Dann fehlen die Apostrophe.
|
AW: deleteanweisung für mehrere Datensätze
Dann müsstest Du doch auch Strings/Chars übergeben.
Also QoutedString für die IDs. Evtl. greift der IN-Befehl bei Chars nicht. Sind nur so Überlegungen |
AW: deleteanweisung für mehrere Datensätze
dann muss es heissen: ...in ('1001','1002')
|
AW: deleteanweisung für mehrere Datensätze
Delphi-Quellcode:
Das müsste eigentlich genügen, wenn ich keinen Denkfehler mache.
if first then
s := QuotedStr(LV.Items[i].Caption) else s := s + Format(', %s',[QuotedStr(LV.Items[i].Caption)]); |
AW: deleteanweisung für mehrere Datensätze
:thumb:
Genau so habe ich es gemeint, sollte so klappen. |
AW: deleteanweisung für mehrere Datensätze
Hallo,
kann mich jetzt erst wieder um die Angelegenheit kümmern. Mit den Anführungsstrichen hat es natürlich geklappt. Vielen Dank für die Hilfe. |
Alle Zeitangaben in WEZ +1. Es ist jetzt 22:09 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