Hi!
Hallo erstmal, dies ist mein erster Besuch in diesem Forum.
Ich verzweifle an folgendem Problem, vermutlich habe ich ein Brett vorm Kopf:
Es soll aus einem TRichedit-Feld der RTF-formatierte Text in einem Textfeld der Postgres-DB gespeichert werden. Dafür muss ich ja auf zwei Sonderzeichen achten: Backslash \ und Hochkomma '. Beides kann ich mit Backslashes maskieren. Jetzt kommt der verzwickte Teil:
Ein Umlaut in RTF-Code sieht beispielsweise so aus: \'e4
Das müsste ich für das Insert-Statement so umschreiben: insert ... values ('\\\'e4')
Soweit klappt das auch, wenn ich über das PGAdmin-Tool nachschaue, steht in der Tabelle exakt \'e4.
Aaaaber:
Sobald ich den Text wieder auslese, bekomme ich das Sonderzeichen für 1/4 gefolgt von der 4. Irgendwo auf dem Weg aus der Tabelle wird der String bereits wieder interpretiert und der Backslash wird zu einem Sonderzeichen umgebaut. (Pikanterweise liest PGAdmin den Wert korrekt aus). Um den Wert also korrekt in Delphi zu bekommen, müsste ich die Backslashes doppelt maskieren, damit beim Zurücklesen der Backslash erhalten bliebe, also insert ... values ('\\\\\'e4')
Damit bekomme ich aber wieder Probleme mit den Rave-Reports.
Da muss es doch eine einfachere Lösung geben, oder? Ich kann vor lauter Backslashes schon kaum noch geradeaus schreiben
Danke im Voraus!
Dirk
Update: Gerade habe ich festgestellt, das dieses Verhalten nur Daten in DB-Textfeldern betrifft, nicht Varchars. Ich habe da den TStream im Verdacht, der in den DB-Komponenten zugange ist. Leider hilft mir diese Erkenntnis noch nicht weiter...