Einzelnen Beitrag anzeigen

Echtet

Registriert seit: 5. Jan 2004
Ort: Dortmund
21 Beiträge
 
Delphi XE3 Professional
 
#1

RichEdit aus DB (Blob) einlesen

  Alt 23. Feb 2022, 09:50
Datenbank: Firebird • Version: 3 • Zugriff über: IBX
Hallo Zusammen,

Ich speichere mit Formatierungen versehenene Texte eines RichEdit in einem Blob-Feld (Subtype:Text) über eine IBQuery in einer Firebird-DB ab. Leider gelingt mir das Einlesen nicht.
Folgendermaßen speichere ich ab (funktioniert):

Delphi-Quellcode:
...
var RichEditStream : TStringStream;
...
    if frmMain.AdvRichEditorBeschreibungNeu.Text.IsEmpty = False then
    begin
      RichEditStream := TStringStream.Create;
      RichEditStream.WriteString(frmMain.AdvRichEditorBeschreibungNeu.ContentAsRTF); //Dadurch bleibt der formatierte Text erhalten
      RichEditStream.Position := 0;
      Query.ParamByName('beschreibung').LoadFromStream(RichEditStream, ftBlob);
      RichEditStream.Free;
    end
...
Mein Versuch des Einlesens sieht folgendermaßen aus:
Delphi-Quellcode:
...
var RichEditStream : TStringStream;
  RichEditStream := Query.CreateBlobStream(Query.Fields[4],bmRead);
  RichEditStream.Position := 0;
  frmMain.AdvRichEditorRTFIO.RichEditor.LoadFromStream(RichEditStream);
  RichEditStream.Free;
...
1. Beim Compilieren bekomme ich die Fehlermeldung:
"E2010 Inkompatible Typen: 'TStringStream' und 'TStream'"

2. Also ändere ich testweise folgendermaßen ab:
var RichEditStream : TStream;
Compilieren gelingt, aber ich bekomme beim Einleseversuch die Exception:
"EReadError: Ungültiges Stream-Format"

Ich komme momentan einfach nicht weiter. Kann mir hier jemand helfen?

Viele Grüße und Danke!
Echtet
Thimo Echtermann
  Mit Zitat antworten Zitat