AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken deleteanweisung für mehrere Datensätze
Thema durchsuchen
Ansicht
Themen-Optionen

deleteanweisung für mehrere Datensätze

Ein Thema von roland1258 · begonnen am 5. Nov 2012 · letzter Beitrag vom 8. Nov 2012
Antwort Antwort
roland1258

Registriert seit: 30. Jul 2012
Ort: Dinslaken
7 Beiträge
 
Delphi 2009 Professional
 
#1

deleteanweisung für mehrere Datensätze

  Alt 5. Nov 2012, 16:47
Datenbank: Oracle • Version: Express 4.0.2.00.09 • Zugriff über: dbExpress
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
Miniaturansicht angehängter Grafiken
bild1.png   bild2.png   bild3.png   bild4.png  
Roland
LG
Roland
Wunder dauern ein bischen länger.

Geändert von roland1258 ( 5. Nov 2012 um 16:58 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von Bernhard Geyer
Bernhard Geyer

Registriert seit: 13. Aug 2002
17.202 Beiträge
 
Delphi 10.4 Sydney
 
#2

AW: deleteanweisung für mehrere Datensätze

  Alt 5. Nov 2012, 17:16
ISt das Feld art_nummer evtl. vom Typ String ((var)char)?
Windows Vista - Eine neue Erfahrung in Fehlern.
  Mit Zitat antworten Zitat
roland1258

Registriert seit: 30. Jul 2012
Ort: Dinslaken
7 Beiträge
 
Delphi 2009 Professional
 
#3

AW: deleteanweisung für mehrere Datensätze

  Alt 5. Nov 2012, 17:22
Der Typ für art_nummer ist varchar
Roland
LG
Roland
Wunder dauern ein bischen länger.
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#4

AW: deleteanweisung für mehrere Datensätze

  Alt 5. Nov 2012, 17:25
Dann fehlen die Apostrophe.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von borncrush
borncrush

Registriert seit: 18. Dez 2005
Ort: Berlin
115 Beiträge
 
Delphi XE7 Enterprise
 
#5

AW: deleteanweisung für mehrere Datensätze

  Alt 5. Nov 2012, 17:25
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
Delphi programming
  Mit Zitat antworten Zitat
Berni68

Registriert seit: 9. Jan 2006
Ort: Villingen
162 Beiträge
 
Delphi XE5 Professional
 
#6

AW: deleteanweisung für mehrere Datensätze

  Alt 5. Nov 2012, 17:26
dann muss es heissen: ...in ('1001','1002')
Bernhard
  Mit Zitat antworten Zitat
Benutzerbild von DeddyH
DeddyH

Registriert seit: 17. Sep 2006
Ort: Barchfeld
27.625 Beiträge
 
Delphi 12 Athens
 
#7

AW: deleteanweisung für mehrere Datensätze

  Alt 5. Nov 2012, 17:29
Delphi-Quellcode:
 if first then
  s := QuotedStr(LV.Items[i].Caption)
else
  s := s + Format(', %s',[QuotedStr(LV.Items[i].Caption)]);
Das müsste eigentlich genügen, wenn ich keinen Denkfehler mache.
Detlef
"Ich habe Angst vor dem Tag, an dem die Technologie unsere menschlichen Interaktionen übertrumpft. Die Welt wird eine Generation von Idioten bekommen." (Albert Einstein)
Dieser Tag ist längst gekommen
  Mit Zitat antworten Zitat
Benutzerbild von borncrush
borncrush

Registriert seit: 18. Dez 2005
Ort: Berlin
115 Beiträge
 
Delphi XE7 Enterprise
 
#8

AW: deleteanweisung für mehrere Datensätze

  Alt 5. Nov 2012, 17:38

Genau so habe ich es gemeint, sollte so klappen.
Delphi programming

Geändert von borncrush ( 5. Nov 2012 um 17:40 Uhr) Grund: weil ich es kann
  Mit Zitat antworten Zitat
roland1258

Registriert seit: 30. Jul 2012
Ort: Dinslaken
7 Beiträge
 
Delphi 2009 Professional
 
#9

AW: deleteanweisung für mehrere Datensätze

  Alt 8. Nov 2012, 13:26
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.
Roland
LG
Roland
Wunder dauern ein bischen länger.
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 09:30 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