" innerhalb eines strings escapen.
" innerhalb eines strings escapen.
ich brauche für einen sql-export / import eine möglichkeit double quote (") zu escapen. also umzuwandeln.
hab es mit verdoppeln versucht aber das geht mit double quote wohl nicht?
in PHP gibt es ja \".
irgendeine ähnliche vorgehensweise in Pascal?
hab es mit verdoppeln versucht aber das geht mit double quote wohl nicht?
in PHP gibt es ja \".
irgendeine ähnliche vorgehensweise in Pascal?
- Zvoni
- Beiträge: 430
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit
- Wohnort: BW
Re: " innerhalb eines strings escapen.
Hä?
Wieso escapen?
In Pascal werden Single-Quotes zum Zuweisen eines Strings an eine Variable verwendet
Oder ich versteh dein Problem komplett falsch
Wieso escapen?
In Pascal werden Single-Quotes zum Zuweisen eines Strings an eine Variable verwendet
Code: Alles auswählen
Var s:String;
Begin
s:='Ich hab ein Double-Quote "Hier" versteckt.';
End;
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Re: " innerhalb eines strings escapen.
export sql:
import geht nicht wegen "text";
Code: Alles auswählen
insert into table values(1,2,"hier ist der "text" der gesetzt wird");
Re: " innerhalb eines strings escapen.
... sofern Du die FPC Sourcen hast, kannst du unter Linux ganz einfach nach Beispielen suchen:
Was hier wie 'Gänsefüßchen' aussieht, sind in Wirklicheit zwei einfache Hochkommas. So sollte es also gehen...
Code: Alles auswählen
% find ./fpcsrc -type f -iname "*pas" -exec grep -i "insert into" {} \;
TDBHelper.ExecSQL('INSERT INTO TESTCPU VALUES (1,''x'')');
TDBHelper.ExecSQL('INSERT INTO TESTCPU VALUES (2,''y'')');
TDBHelper.ExecSQL('INSERT INTO TESTOS VALUES (1,''x'')');
TDBHelper.ExecSQL('INSERT INTO TESTOS VALUES (2,''y'')');
...
Re: " innerhalb eines strings escapen.
Ich verstehe das Problem nicht. Kann es sein, das du dich verrannt hast?atroesch hat geschrieben: Do 14. Aug 2025, 12:17 export sql:import geht nicht wegen "text";Code: Alles auswählen
insert into table values(1,2,"hier ist der "text" der gesetzt wird");
" hat in Pascal keine syntaktische Bedeutung. Stringkonstanten sind in '.
In deinen Beispiel sehe ich nichts, was mit Pascal zu tun hätte.
Das sähe z.B. so aus:
Code: Alles auswählen
SQL:='insert into table values(1,2,''hier ist der '+atext+' der gesetzt wird'')';
Ob man das allgemein so macht, sei mal dahingestellt.
- af0815
- Lazarusforum e. V.
- Beiträge: 6918
- Registriert: So 7. Jan 2007, 10:20
- OS, Lazarus, FPC: FPC fixes Lazarus fixes per fpcupdeluxe (win,linux,raspi)
- CPU-Target: 32Bit (64Bit)
- Wohnort: Burgenland
- Kontaktdaten:
Re: " innerhalb eines strings escapen.
Willkommen in der SQL-String gefrickel Hölle 
Versuch dich an Parametern, damit erspart man sich das ganze Gefrickel. Glaube mir, es wird noch schlimmer mit Datum und Zahlen.
Siehe auch
viewtopic.php?t=13090
https://www.freepascal.org/docs-html/fc ... arams.html
https://wiki.freepascal.org/SqlDBHowto/de dort "Verwendung von Parametern in einer Abfrage"

Versuch dich an Parametern, damit erspart man sich das ganze Gefrickel. Glaube mir, es wird noch schlimmer mit Datum und Zahlen.
Siehe auch
viewtopic.php?t=13090
https://www.freepascal.org/docs-html/fc ... arams.html
https://wiki.freepascal.org/SqlDBHowto/de dort "Verwendung von Parametern in einer Abfrage"
Blöd kann man ruhig sein, nur zu Helfen muss man sich wissen (oder nachsehen in LazInfos/LazSnippets).
Re: " innerhalb eines strings escapen.
@af0815
ich nutze bei Abfragen immer parameter.
Es ging ja hier um einen Dump der erstellt werden soll.
Hatte den absoluten Aussetzer.
Wenn ich den dump erstelle kann ich doch einfach sql escapes benutzen..LOL
sorry für die unnötige Frage..
ich nutze bei Abfragen immer parameter.

Es ging ja hier um einen Dump der erstellt werden soll.
Hatte den absoluten Aussetzer.
Wenn ich den dump erstelle kann ich doch einfach sql escapes benutzen..LOL
Code: Alles auswählen
insert into Table values(1,10,"Ich hab ein Double-Quote \"Hier\" versteckt.");
- Zvoni
- Beiträge: 430
- Registriert: Fr 5. Jul 2024, 08:26
- OS, Lazarus, FPC: Windoof 10 Pro (Laz 2.2.2 FPC 3.2.2)
- CPU-Target: 32Bit
- Wohnort: BW
Re: " innerhalb eines strings escapen.
Genau darauf wollte ich hinaus....atroesch hat geschrieben: Do 14. Aug 2025, 13:21 Wenn ich den dump erstelle kann ich doch einfach sql escapes benutzen..LOL
sorry für die unnötige Frage..Code: Alles auswählen
insert into Table values(1,10,"Ich hab ein Double-Quote \"Hier\" versteckt.");
Ein System sie alle zu knechten, ein Code sie alle zu finden,
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.
Eine IDE sie ins Dunkel zu treiben, und an das Framework ewig zu binden,
Im Lande Redmond, wo die Windows drohn.