Einzelnen Beitrag anzeigen

bttb930

Registriert seit: 6. Okt 2003
372 Beiträge
 
#9

Re: SQL -> Text mit ' einfügen ?

  Alt 16. Mär 2007, 10:56
Also... den Beitrag von Hansa halte ich für absoluten Schwachsinn!!!!

ParamByName ist die richtige Lösung und dass man den SQL.Text auf ein INSERT-Statement setzt die beste Lösung. Besser als die von Hansa vorgeschlagene.

Zitat von Hansa:
Sicherheitstechnisch kann da nicht viel passieren, wenn denn alles stimmt. Allerdings sind Tür und Tor für Fehler weit geöffnet. Valeo Pupsus :shock: liefert gleich ein schönes Bsp. Dieses lässt sich sicherlich in der Art nicht compilieren wegen Schreibfehler. Er hat vergessen aus dem ' im String ein '' zu machen. Wäre der Ausdruck syntaktisch zwar korrekt, aber nicht logisch dann kracht es zur Laufzeit umso mehr. Delphi würde bei diesem sinnlosen SQL-String nicht mal meckern :

Q.SQL.Text := 'jhlkkjhjkhkl'; Jetzt wird aber nicht nur ein Feld manuell besetzt, sondern sogar das ganze Insert-Statement. Durch schlichtes Zusammensetzen eines Strings und diesen dann an die DB schicken. Diese Strings werden meistens viel zu lang und deshalb unübersichtlich. Warum werden die (vorhandenen) Methoden von TDataSet nicht benutzt ?

Delphi-Quellcode:
Edit1.Text := 'An Klas''Kotten 10'; // falls Wert von Hand besetzt wird ' -> ''
DS.Insert;
DS.FieldByName('NAME').AsString := Edit1.Text;
.. weitere Felder
DS.Post;
// Commit usw.
  Mit Zitat antworten Zitat