Einzelnen Beitrag anzeigen

Benutzerbild von himitsu
himitsu

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

AW: select mit ' läuft nicht

  Alt 9. Okt 2021, 19:29
Eigentlich sollte es egal sein, ob mit oder ohne Zeilenumbruch.
Das Statement wird ja eigentlich auch erst in der DB und nicht in Delphi verarbeitet.

Zitat:
ohne quotedstr gehts nicht
Natürlich nicht ... obwohl, eigentlich doch.
Delphi-Quellcode:
main.qryproducts.SQL.Add('WHERE verfall <= ''' + jahr_begin + '''');
main.qryproducts.SQL.Add(' AND p_datum <= ''' + jahr_end + '''');
Aber nochmal ... QuoteStr ist falsch.

Du kannst Milch auch in einer Papiertüte transportieren, aber sehr lange wird es nicht gut gehen, auch wenn es erstmal funktionieren mag.

QuoteStr ist für Pascal ... nicht für SQL.
Das ' ist hier zwar zufällig das Gleiche, jedenfalls zu Beginn und am Ende des Strings, aber innerhalb eines Strings ist das nicht kompatibel, was QuoteStr hier produziert, und somit falsch,
vorallem wenn es um andere Zeichen geht, speziell ' oder \


Insgesamt ist es hier eben immer besser mit Parametern zu arbeiten, da die DB-Komponente bzw. Datenbankengine das dann intern behandelt und du dich um Nichts kümmern musst.


Tipp: bei uns waren Kunden mal auf die geile Idee gekommen, in Artikelbezeichnern ein ' zu verwenden, was an einigen Stellen dann knallte, vor allem dort, wo die Übergabestellen zwischen Delphi, Python und SQL stattfanden, da die alle ihre eigene Syntax nutzen.
$2B or not $2B

Geändert von himitsu ( 9. Okt 2021 um 19:35 Uhr)
  Mit Zitat antworten Zitat