Thema: Delphi ZEOS und Hochkommata

Einzelnen Beitrag anzeigen

shmia

Registriert seit: 2. Mär 2004
5.508 Beiträge
 
Delphi 5 Professional
 
#13

Re: ZEOS und Hochkommata

  Alt 4. Apr 2005, 18:18
Mal was Grundlegendes zu SQL und Hochkommas:
* Nur Stringliterale werden in Hochkommas eingeschlossen.
Andere Datentypen wie Numeric, Float, ... werden nicht in Hochkommas eingeschlossen:
SQL-Code:
-- nur das Feld Beschreibung ist ein Stringfeld (Datentyp varchar(50))
INSERT INTO Tabelle(Betrag, Beschreibung) VALUES(16.5, 'Zinssatz Konto 14')
* wer die Hochkommas hartcodiert im Sourcecode ablegt, dem gehört gleich der Dübel gebohrt.
Delphi-Quellcode:
// FALSCH
Query1.SQL.Text:='INSERT INTO tabelle (Feld1, Feld2) VALUES('''+Combobox1.Text+''','''+Edit1.Text+'')';

// Richtig
Query1.SQL.Text:=
'INSERT INTO tabelle (Feld1, Feld2) VALUES('+QuotedStr(Combobox1.Text)+','+QuotedStr(Edit1.Text)+')';
mit QuotedStr ist es leichter zu lesen und es gibt vorallem keinen Syntaxfehler, wenn in den Daten selbst mal ein Hochkomma enthalten ist.

* um den Problemen mit Hochkommas und diversen Datumsschreibweisen von vornerein aus dem Weg zu gehen, nimmt man Parameter:
Delphi-Quellcode:
Query1.SQL.Text:='INSERT INTO tabelle (Feld1, Feld2) VALUES
(:Feld1, :Feld2)
';
Query1.Parameters.ParamValues['Feld1'] := Combobox1.Text;
Andreas
  Mit Zitat antworten Zitat