![]() |
Datenbank: SQLite • Version: ? • Zugriff über: FDQuery
Insert Values die "!" enthalten
Hallo,
bei folgender SQL-Anweisung knallt es:
Delphi-Quellcode:
Grund ist das Ausrufezeichen.
FDQuery.SQL.Text := 'INSERT INTO test (name,text) VALUES ("Fritz","Hallo!")';
FDQuery.ExecSQL; ich kann natürlich alle Ausrufezeichen entfernen, besser wäre aber, es irgendwie zu "codieren" damit es akzeptiert wird, nur wie könnte das gehen? Ciao Stefan |
AW: Insert Values die "!" enthalten
Benutze SQL-Parameter, wann immer das möglich ist (also eigentlich so gut wie immer).
Delphi-Quellcode:
FDQuery.SQL.Text := 'INSERT INTO test (name,text) VALUES (:name,:text)';
FDQuery.ParamByName('name').AsString := 'Fritz'; FDQuery.ParamByName('text').AsString := 'Hallo!'; FDQuery.ExecSQL; |
AW: Insert Values die "!" enthalten
Zusätzlich noch eine Kleinigkeit: In vielen DBMS ist "name" ein reserviertes Wort. Möchte man es selbst anders, z.B. als Spaltenname verwenden, möchten viele, dass man es escaped. Bei MySQL geht das zum Beispiel mit Back-Ticks: `name`
Kann je nach dem auch ohne gehen, aber sicherer ist es solche entweder zu meiden oder zu escapen. |
AW: Insert Values die "!" enthalten
Zitat:
|
AW: Insert Values die "!" enthalten
Setzt mal in der FDQuery folgende Eigenschaften auf False: ResourceOptions.MacroCreate, MacroExpand.
Hintergrund: ![]() Zitat:
|
AW: Insert Values die "!" enthalten
Makros werden im FD auch innerhalb von Strings ersetzt?
* nja, Parameter sind für fast Alles die Lösung :) * oder Double special characters * man könnte die Makro-Expansion auch einfach deaktivieren. :angle: * oder sowas nicht machen * oder ... Viel Spaß, mit all den anderen Zeichen. ![]() |
AW: Insert Values die "!" enthalten
Zitat:
Mal abgesehen davon, dass der String im SQL eigentlich gar nichts verloren hat. Denn: Zitat:
|
AW: Insert Values die "!" enthalten
Macht Postgres/PgDAC nicht so, also nicht innherlab von "Bezeichnern" oder 'Texten' :stupid:
zu MySQL kann ich nichts sagen ... damals kannte ich sowas Exotisches wie Makros und Parameter noch nicht. :duck: |
AW: Insert Values die "!" enthalten
Zitat:
|
AW: Insert Values die "!" enthalten
FireDAC gegen MariaDB reagiert genau so. Musste ich auch erst lernen.
Ist also ein FireDAC-Ding, so wie Uwe schreibt! Zitat:
|
Alle Zeitangaben in WEZ +1. Es ist jetzt 04:29 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