Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Firedac Insert/Update (https://www.delphipraxis.net/184500-firedac-insert-update.html)

Markus70 31. Mär 2015 15:19

Datenbank: MSSQL • Version: 2012 • Zugriff über: firedac

Firedac Insert/Update
 
Hallo,

ich stelle gerade meine Anwendung auf XE7 mit Firedac um.

Warum verschluckt mir firedac bei
"update tbl_x set Feld = 'Hallo !Test 123' where ID=1"
den Teil des strings, der direkt an das ! folgt? - In der Datenbank kommt nur ein "Hallo 123" an.

VG

himitsu 31. Mär 2015 15:21

AW: Firedac Insert/Update
 
Könnte es sein, daß "!" = Makro?

Und warum benutzt du keine Parameter?
SQL-Code:
update tbl_x set Feld = :feld where ID = :id

mkinzler 31. Mär 2015 15:23

AW: Firedac Insert/Update
 
Die hast eine Makroersetzung aktiviert. Entweder Funktion deaktivieren, Sonderzeichen verdoppeln (!!) oder Parameter verwenden

Sir Rufo 31. Mär 2015 15:24

AW: Firedac Insert/Update
 
Weil du dir die Dokumentation nicht angesehen hast:
http://docwiki.embarcadero.com/RADSt...stext_(FireDAC)
Zitat:

Verarbeitung von Sonderzeichen

Gehen Sie folgendermaßen vor, um Sonderzeichen, wie "!", "&", ":", "?", "{" oder "}", an das DBMS weiterzugeben:
  • Verdoppeln Sie Sonderzeichen (z. B. "{{").
  • Stellen Sie für MySQL dem Sonderzeichen dieses Zeichen "\" voran (z. B. "\"").
  • Setzen Sie für "!", "&", "{", "}" ResourceOptions.MacroCreate, MacroExpand und EscapeExpand auf False.
  • Setzen Sie für ":", "?" ResourceOptions.ParamCreate und ParamExpand auf False.
Andernfalls werden die Zeichen "!", "&", "{", "}" als Makro-Anweisung und die Zeichen ":", "?" als Parametermarker behandelt, außer in den folgenden Fällen, wenn eine Konstruktion von FireDAC gefunden und nicht als Parametermarker behandelt wird:
  • Der Oracle PL/SQL-Zuweisungsoperator.
  • Die EXECUTE BLOCK-Parameter in BEGIN … END von Firebird.
  • Das Label TSQL.
  • Der PostgreSQL- und Informix-Umwandlungsoperator '::'.
  • Das Informix-Katalogzeichen ':'.


Markus70 31. Mär 2015 15:34

AW: Firedac Insert/Update
 
doku? :oops:

...und schon geht´s:thumb:


Alle Zeitangaben in WEZ +1. Es ist jetzt 06:12 Uhr.

Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz