Einzelnen Beitrag anzeigen

Benutzerbild von Captnemo
Captnemo

Registriert seit: 27. Jan 2003
Ort: Bodenwerder
1.126 Beiträge
 
Delphi XE4 Architect
 
#1

JvRichEdit in MSSQL-DB speichern und laden

  Alt 10. Sep 2014, 12:51
Hallo,

ich möchte einen RichText in einer DB speichern und auch wieder laden.
Als Control nehme ich ein JvRichEdit und als DB MSSQL über ADO.
Die eigentlichen Daten befinden sich in einer Klasse, die das speichern und laden aus der DB übernimmt.

Die Übertragung an die Klasse mache ich so:

Delphi-Quellcode:
    SetRichText(edt_arbeiten, termin.Arbeiten); //Richedit -> Klasse
    termin.Arbeiten:=GetRichText(edt_arbeiten); //Klasse -> Richedit
Und hier die entsprechenden Funktion und Procedure

Delphi-Quellcode:
function GetRichText(RichEdit: TJvRichEdit): string;
var
  Stream: TMemoryStream;
  sl: TStringList;
begin
  Stream:=TMemoryStream.Create;
  sl:=TStringList.Create;
  RichEdit.Lines.SaveToStream(Stream);
  Stream.Position:=0;
  sl.LoadFromStream(Stream);
  Result:=sl.Text;
  Stream.Free;
  sl.Free;
end;

procedure SetRichText(RichEdit: TJvRichEdit; s: string);
var
  Stream: TMemoryStream;
  sl: TStringList;
begin
  Stream:=TMemoryStream.Create;
  sl:=TStringList.Create;
  sl.Text:=s;
  sl.SaveToStream(Stream);
  Stream.Position:=0;
  RichEdit.Lines.LoadFromStream(Stream);
  Stream.Free;
  sl.Free;
end;
Als DB-Feld habe ich ein varchar(MAX).

Wenn ich jetzt in mein RichEdit ein bischen "blablabla" mit ein paar Formatierungsangeben schreibe,
diese dann speichere und wieder lade, dann steht im RichEdit das hier drin:

Code:
{\rtf1\ansi\ansicpg1252\deff0\deflang1031{\fonttbl{\f0\fnil\fcharset0 Tahoma;}}
{\colortbl ;\red0\green0\blue255;\red255\green255\blue0;}
\viewkind4\uc1\pard\cf1\highlight2\b\f0\fs16 blablabla\cf0\highlight0\b0\par
}
Irgendwie hab ich mich verrannt und find den Fehler nicht.
Dieter
9 von 10 Stimmen in meinem Kopf sagen ich bin nicht verrückt. Die 10. summt dazu die Melodie von Supermario Bros.
MfG Captnemo
  Mit Zitat antworten Zitat