AGB  ·  Datenschutz  ·  Impressum  







Anmelden
Nützliche Links
Registrieren
Zurück Delphi-PRAXiS Programmierung allgemein Datenbanken Delphi Formatierten Text in DB speichern
Thema durchsuchen
Ansicht
Themen-Optionen

Formatierten Text in DB speichern

Ein Thema von Fellmer Lloyd · begonnen am 11. Feb 2004 · letzter Beitrag vom 12. Feb 2004
Antwort Antwort
Fellmer Lloyd
(Gast)

n/a Beiträge
 
#1

Formatierten Text in DB speichern

  Alt 11. Feb 2004, 09:17
Morgen!

Ich will den Inhalt eines Richedit mit formatierung in eine Datenbank speichern.
Ich habe bereits eine Lese/Speicherprozedur geschrieben, bin mir jedoch nicht sicher ob das die optimale Lösung ist.

Über Kritik würde ich mich freuen

Zur Datenbank
--------------
DB-Typ: Access.
Feldtyp: Memo.

Speicherprozedur:
Delphi-Quellcode:
TmpMemoryStream:= TMemoryStream.Create;
TmpStringList:= TStringList.Create;
try
  RichEditData.Lines.SaveToStream(TmpMemoryStream); //Speichert den Text mit formatierung in ein Stream
  TmpMemoryStream.Position:= 0; //Position auf 0 setzen
  TmpStringList.LoadFromStream(TmpMemoryStream); //Text Mit Formatierung aus dem Stream lesen
TableData.FieldByName('RichText').AsString:= TmpStringList.Text;
finally
  TmpMemoryStream.Free;
  TmpStringList.Free;
end;
Leseprozedur:
Delphi-Quellcode:
    
TmpMemoryStream:= TMemoryStream.Create;
TmpStringList:= TStringList.Create;
try
  TmpStringList.Text:= TableData.FieldByName('RichText').AsString;
  TmpStringList.SaveToStream(TmpMemoryStream); //Speichert den Text mit formatierung in ein Stream
  TmpMemoryStream.Position:= 0; //Position auf 0 setzen
  RichEditData.Lines.LoadFromStream(TmpMemoryStream);//Text Mit Formatierung aus dem Stream lesen
finally
  TmpMemoryStream.Free;
  TmpStringList.Free;
end;
Gruss Fellmer
  Mit Zitat antworten Zitat
Benutzerbild von CenBells
CenBells

Registriert seit: 30. Mär 2003
Ort: Kiel urspr. Lübeck
176 Beiträge
 
Delphi 7 Professional
 
#2

Re: Formatierten Text in DB speichern

  Alt 11. Feb 2004, 12:05
Hallo,

ich verwende für solche operationen ein Feld vom Typ Blob.
Da brauchst du nicht den Umweg über ein TStringList-Objekt machen. Und ich bin mir nicht so sicher, ob die Steuercodes in ein normales Stringfield übernommen werden.
Das sieht dann so aus
TBlobfield(TableData.FieldByName('RichText')).LoadFromStream(DeinStream);
Gruß
Ken
  Mit Zitat antworten Zitat
Fellmer Lloyd
(Gast)

n/a Beiträge
 
#3

Re: Formatierten Text in DB speichern

  Alt 11. Feb 2004, 15:41
Hi!

Danke für die Antwort.
Ich werde mein Datenbank-Feld ändern (vom Typ "Memo" in "OLE-Objekt" bzw. Blob).

Jetzt habe ich eine weitere Frage:
Wie kann ich in den bereits mit Daten gefüllten Access-Datenbanken den Feldtyp ändern? (Von meinem Programm aus).
Das sollte doch im Prinzip mit einer SQL-Anwesung möglich sein (Query), oder liege ich falsch?
Was passiert mit den Daten im vorhandenen "Memo"-Feld, wenn es umgewandelt wird?
Sie sollen ja schliesslich nicht verloren gehen.

Gruss Fellmer
  Mit Zitat antworten Zitat
Fellmer Lloyd
(Gast)

n/a Beiträge
 
#4

Re: Formatierten Text in DB speichern

  Alt 12. Feb 2004, 08:51
Die SQL Anweisung sollte etwa so aussehen denke ich
ALTER TABLE TableData CHANGE 'RichText' 'RichText' BLOB NOT NULL; -->Funktioniert aber noch nicht
Gibt es den Parameter CHANGE überhaupt? Kenne sonst nur Add/Delete, aber dann gehen ja die Daten verloren

[EDIT]
Habe den Parameter "Modify" enddeckt... kann die Anweisung aber immer noch nicht ausführen
  Mit Zitat antworten Zitat
Tyrael Y.

Registriert seit: 28. Jul 2003
Ort: Stuttgart
1.093 Beiträge
 
Delphi 2007 Professional
 
#5

Re: Formatierten Text in DB speichern

  Alt 12. Feb 2004, 09:43
Wenn der alte Typ der Daten dem neuen Typ nicht mehr entspricht gehen die Daten natürlich verloren.

Tip: Speichere die alten Daten in eine neue Tabelle, ändere deinen Typ in der alten Tabelle und übertrage dann die Daten typgerecht
Levent Yildirim
Erzeugung von Icons aus Bildern:IconLev
  Mit Zitat antworten Zitat
Antwort Antwort


Forumregeln

Es ist dir nicht erlaubt, neue Themen zu verfassen.
Es ist dir nicht erlaubt, auf Beiträge zu antworten.
Es ist dir nicht erlaubt, Anhänge hochzuladen.
Es ist dir nicht erlaubt, deine Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind an.
[IMG] Code ist an.
HTML-Code ist aus.
Trackbacks are an
Pingbacks are an
Refbacks are aus

Gehe zu:

Impressum · AGB · Datenschutz · Nach oben
Alle Zeitangaben in WEZ +1. Es ist jetzt 17:29 Uhr.
Powered by vBulletin® Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
LinkBacks Enabled by vBSEO © 2011, Crawlability, Inc.
Delphi-PRAXiS (c) 2002 - 2023 by Daniel R. Wolf, 2024 by Thomas Breitkreuz