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:
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;
Ich lasse mir zur Kontrolle s (Bild2) und den
sql-Text(Bild3) ausgeben.
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