AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren

Problem mit SQL.Add

Ein Thema von jmich · begonnen am 14. Feb 2022 · letzter Beitrag vom 16. Feb 2022
Antwort Antwort
Benutzerbild von haentschman
haentschman

Registriert seit: 24. Okt 2006
Ort: Seifhennersdorf / Sachsen
5.437 Beiträge
 
Delphi 12 Athens
 
#1

AW: Problem mit SQL.Add

  Alt 15. Feb 2022, 06:59
Hallöle...

...ich hatte mir geschworen, niemals mehr auf Beitrage die WITH enthalten zu antworten... Das WITH sagt...entweder Copy/Paste aus alten Beispielen oder "ich hab das immer so gemacht". Die Zeiten ändern sich...

Delphi-Quellcode:
...
SQL.Add('Where Rechnr = + QuotedStr(ed_rechngd_rechnr.Text)+');
...meinst du, daß das SQL(string) "QuotedStr" versteht?

besser für die Zeile:
Delphi-Quellcode:
...
SQL.Add('where Rechnr = ' + QuotedStr(ed_rechngd_rechnr.Text));
die richtige Zeile:
Delphi-Quellcode:
LiteQuery_rechng.SQL.Add('where Rechnr = :REN');
LiteQuery_rechng.SQL.ParamByName('REN').AsString := ed_rechngd_rechnr.Text;

PS: gegen die ADD Origien gibt es was von "mir" https://www.delphipraxis.net/190316-...e-creator.html

Geändert von haentschman (15. Feb 2022 um 07:13 Uhr)
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.379 Beiträge
 
Delphi 12 Athens
 
#2

AW: Problem mit SQL.Add

  Alt 15. Feb 2022, 07:05
Was soll man da denn noch sagen?

Ohne den Schwachsinn mit Try-Except, würde er bestimmt eine richtige Fehlermeldung bekommen, die ihm alle Fehler zeigt.



Selbst wenn die DB das QuoteStr verstehen würde, dann spätestens das im QuoteStr nicht mehr, bzw. die + davor und dahinter auch nicht.

Aber vorher wäre erstmal beim zweiten = gemeckert wurden, wegen der fehlenden Komata.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
302 Beiträge
 
Delphi 10.4 Sydney
 
#3

AW: Problem mit SQL.Add

  Alt 15. Feb 2022, 08:52
Moin,

Du könntest das auch so schreiben:

Delphi-Quellcode:
   qry1.SQL.Text   :=   'UPDATE Rechnung SET ' +
               '   MWSteuer = :mw ' +
               '   ,Nachlassumme = :nasum ' +
               '   ,Sicherheitsumme = :ssum ' +
               '   ,Skontosumme = :sksum ' +
               '   ,Nettosumme = :nsum ' +
               '   ,Bruttogesamt = :bsum ' +
               'WHERE ' +
               '   Rechnr = :ed_rechngd_rechnr ';
und dann kommt das füllen der Parameter.

Das fehlende Komma ist natürlich das erste Problem, mehrere Felder mit SET ändern bedarf einem Komma vor jedem Feld bzw. nach jedem Inhalt.
Und dann kannst Du die Rechnr natürlich auch per Parameter übergeben.
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney
  Mit Zitat antworten Zitat
jmich

Registriert seit: 24. Dez 2007
40 Beiträge
 
#4

AW: Problem mit SQL.Add

  Alt 15. Feb 2022, 17:40
Als erstes mal vielen Dank.

Die Lösung beim Betrag von Haentschman hatte ich schon auch
probiert, aber funhtionierte eben nicht.
Das mit den fehlenden Kommas hatte ich auch schon erkannt.
Das mit der Fehlerexcept wurde mir von einen im Forum als Lösung unterbreitet.

Die Lösung von rokli war für mich die beste und diese klappt auch super.
Sie ist sehr übersichtlich.
Nochmals vielen Dank besonders an rokli, der auch nett die Lösung rübergebtacht hat.

Jmich
  Mit Zitat antworten Zitat
Benutzerbild von himitsu
himitsu

Registriert seit: 11. Okt 2003
Ort: Elbflorenz
44.379 Beiträge
 
Delphi 12 Athens
 
#5

AW: Problem mit SQL.Add

  Alt 15. Feb 2022, 17:52
Try-Except macht nur Sinn, wenn man darin auch was Sinnvolles macht.

z.B. den originalen Fehler in ein Log schreiben,
oder ihn an die neue Fehlermeldung mit anzuhängen.

Oder eben, wenn man genau weiß welcher Fehler es ist und man ihn gezielt unterdrücken will, um es z.B. nochmal anders zu versuchen, oder Dergleichen.
Ein Therapeut entspricht 1024 Gigapeut.
  Mit Zitat antworten Zitat
Benutzerbild von Sharky
Sharky

Registriert seit: 29. Mai 2002
Ort: Frankfurt
8.259 Beiträge
 
Delphi 2006 Professional
 
#6

AW: Problem mit SQL.Add

  Alt 15. Feb 2022, 18:58
Was soll man da denn noch sagen?

Ohne den Schwachsinn mit Try-Except,..
Schön zu sehen, dass sich Deine Arroganz auch nach mehreren Jahren nicht gelegt hat.
Persönliche Entwicklung im Fachgebiet -> Stetig steigend
Persönliche Entwicklung im Umgang mit Menschen -> Stetig fallend
Stephan B.
"Lasst den Gänsen ihre Füßchen"
  Mit Zitat antworten Zitat
hoika

Registriert seit: 5. Jul 2006
Ort: Magdeburg
8.277 Beiträge
 
Delphi 10.4 Sydney
 
#7

AW: Problem mit SQL.Add

  Alt 15. Feb 2022, 21:16
Hallo,
sehe ich nicht so!

Es ist halt ein Problem, dass hier ankommen,
und die einfachsten Sachen ignorieren.

wenn ich try except benutzen, dann doch bitte richtig.
Heiko
  Mit Zitat antworten Zitat
Benutzerbild von Jasocul
Jasocul

Registriert seit: 22. Sep 2004
Ort: Delmenhorst
1.371 Beiträge
 
Delphi 11 Alexandria
 
#8

AW: Problem mit SQL.Add

  Alt 16. Feb 2022, 06:41
Fahrt mal ein bischen runter, Leute.

Als ich die Eingangsfrage gelesen hatte, dachte ich auch, dass da wesentliche Grundlagen nicht beachtet werden. OK, gedacht habe ich da was anderes, aber formulieren kann man es ja netter.
Dann habe ich genauer hingesehen:
- TE seit 2007 hier mit 15 Beiträgen
- D5
- Simple SQL-Fehler (und andere Grundlagenfehler)
Folglich wenig/keine Erfahrung, Gelegenheitsprogrammierer, o.ä.

Das kann man einfach mal berücksichtigen, wenn man antwortet und muss nicht mit dem Hammer drauf hauen. Auch wenn man diese Sachen ständig wiederholen muss. Der harte Kern der DP liest hier sicher täglich mit, aber die meisten kommen nur hierher, wenn sie ein Problem haben und wissen nicht, was man hier regelmäßig wiederholen muss.

Also nächstes mal einfach erstmal entspannt zurücklehnen und überlegen, was und wie man antwortet. Oder man hält einfach mal die Finger still. Auf die Grundlagen werden auch andere hinweisen.
Peter
  Mit Zitat antworten Zitat
rokli

Registriert seit: 21. Mär 2009
Ort: Rödinghausen
302 Beiträge
 
Delphi 10.4 Sydney
 
#9

AW: Problem mit SQL.Add

  Alt 16. Feb 2022, 09:12
Hi zusammen,

hat eigentlich jemand mal zum TRY - EXCEPT Block was inhaltlich gesagt?

Also ich mache das so

Delphi-Quellcode:
   try
      qry2.Open;
   except
      on E: Exception do begin
         ShowMessage(e.Message);
         ShowMessage(qry2.SQL.Text);
      end;
   end;
Das ist eine ganze einfach Variante, um überhaupt was zu sehen.

Wenn im SQL ein Fehler enthalten ist, wird durch den EXECPT das Programm in die Fehlerbehandlung geschickt. Durch den ersten SHOWMESSAGE die Fehlermeldung ansich gezeigt und der zweit SHOWMESSAGE zeigt mir den Inhalt der defekten SQL, damit ich mit der Fehleranalyse beginnen kann.

Und im wirklich Leben übergebe ich diese Daten an eine Prozedur, die mir diese Fehlermeldung (mit Programmnamen, Username, wann das gewesen ist, etc.) wiederum in eine DB schreibt. Da sollte dann natürlich kein Fehler drin passieren

Vielleich ist das ja noch eine kleine Anregung aus der geworfenen Fehlermeldung Nutzen zu ziehen ...

Beste Grüße

@Sinspin: Sorry - Du hattest das auch schon gezeigt! (Nachtrag)
Rolf
wenn nicht anders angegeben, schreibe ich zu D7, XE2 und MS SQL - ansonsten fragen Sie ihren Administrator oder einen Operator. Update 06/2020: Delphi 10.4 Sydney

Geändert von rokli (16. Feb 2022 um 09:16 Uhr)
  Mit Zitat antworten Zitat
BerndS

Registriert seit: 8. Mär 2006
Ort: Jüterbog
493 Beiträge
 
Delphi 12 Athens
 
#10

AW: Problem mit SQL.Add

  Alt 16. Feb 2022, 10:31
Da wurde schon drauf eingegangen.
Ich persönlich würde aber diese Variante bevorzugen und nur die Message ergänzen und die Anzeige der Exception der App überlassen oder zumindest nur einmal Showmessage aufrufen.

Delphi-Quellcode:
   try
     qry2.Open;
   except
      on E: Exception do
      begin
        E.Message := E.Message + #13 + qry2.SQL.Text;
        raise;
      end;
   end;
  Mit Zitat antworten Zitat
Antwort Antwort

Themen-Optionen Thema durchsuchen
Thema durchsuchen:

Erweiterte Suche
Ansicht

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 20:37 Uhr.
Powered by vBulletin® Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024-2025 by Thomas Breitkreuz