Einzelnen Beitrag anzeigen

Redeemer

Registriert seit: 19. Jan 2009
Ort: Kirchlinteln (LK Verden)
1.053 Beiträge
 
Delphi 2009 Professional
 
#2

AW: RichEdit aus DB (Blob) einlesen

  Alt 23. Feb 2022, 20:14
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.
Janni
2005 PE, 2009 PA, XE2 PA
  Mit Zitat antworten Zitat