Zum Speichern:
Du nimmst in der Spaltendefinition und im Speichern-Code an, dass RTF ein
ASCII-Format ist. Das solltest du nicht machen, denn der Inhalt von Dateien, die normalerweise nicht per Texteditor erstellt werden (niemand erstellt ein RTF von Grund auf mit Texteditor), geht dich eigentlich nichts an. Stell dir vor, der TStringStream schreibt dir eine BOM in den String - was machst du dann?
Normalerweise speichert man den Inhalt eines RichEdit so (zumindest beim Standard-RichEdit):
Delphi-Quellcode:
...
var RichEditStream : TMemoryStream;
...
if not frmMain.AdvRichEditorBeschreibungNeu.Text.IsEmpty
then
begin
RichEditStream := TMemoryStream.Create;
try
frmMain.AdvRichEditorBeschreibungNeu.Lines.SaveToStream(RichEditStream);
RichEditStream.Position := 0;
Query.ParamByName('
beschreibung').LoadFromStream(RichEditStream, ftBlob);
finally
RichEditStream.Free;
end;
end
...
Zum Laden:
Auch beim Laden ist StringStream nicht gut, daher scheitert das: Die allermeisten Komponenten verwenden TStrings und TStream als Eigenschaften und Rückgabewerte, weil es dich als Verwender einfach nichts angeht, welcher Typ das genau ist.
Mach mal RichEditStream.SaveToFile und schau dir das Ergebnis in Word oder so an.
Spalten über die Nummer ansprechen ist auch oft keine gute Idee.