Naja die RTF-Rohdaten sollte man durchaus ineinem Varchar/Char/Text/Memo-Feld speichern können:
Code:
{\rtf1\
ansi\ansicpg1252\uc1 \deff0\deflang1033\deflangfe1031{\fonttbl{\f0\froman\fcharset0\fprq2{\*\panose 02020603050405020304}Times New Roman;}{\f2\fmodern\fcharset0\fprq1{\*\panose 02070309020205020404}Courier New;}....
Da wird nicht gezaubert und es ist mit dem ordinären Notepad lesbar. man muß sich nur durch die verschiedenen Begrifflichkeiten durchfinden, um zu erreichen was man will. Irgendwo sollte jede RichText-Komponente auch den Zugriff auf den "SourceCode" ermöglichen, und der kann ganz problemlos als Text gespeichert werden.
Grundsätzlich ist das nicht falsch oder klingt zumindest logisch nachvollziehbar. Dennoch habe ich die Erfahrung gemacht, daß RTF-Inhalte – insbesondere ab Delphi 2009, wo ja die
Unicode-Unterstützung begann – in Textfeldern – auch z.B. bei Firebird's Blobfeld im Textmodus – nicht immer korrekt gespeichert werden, in Binärfeldern dagegen schon, und zwar ausnahmslos. Ich kann dir auch nicht genau sagen, weshalb das so ist, aber ich kann dir versichern,
daß es so ist.
Zudem mache vermutlich nicht nur ich von der Möglichkeit Gebrauch, in RichEdit-Komponenten auch Grafiken zu speichern, was die Wahl eines Binärfeldes als zwingend erscheinen läßt. Bei Memo-Komponenten wie TDBMemo z.B. genügt ein Textfeld, da gibts keine Formatierungen und man kann da auch keine Bilder einbinden.
Wenn du mal die Forensuche bemühst, wirst du etlichen Usern begegnen, die große Schwierigkeiten dabei hatten, RTF-Inhalte in Textfeldern zu speichern, diese Probleme aber nicht mehr auftraten, nachdem sie ein Binärfeld gewählt hatten. Deshalb ist das immer auch mein erster Ratschlag bei diesem speziellen Problem.
Es ist nur die Frage, was der DBRichText in die Tabelle ablegt. Es scheint so, ob nur der reine Text gespeichert wird.
Scheint mir auch so ... Allerdings habe ich schon lange nicht mehr probiert, RTF-Inhalte in Textfeldern zu speichern