Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   GUI-Design mit VCL / FireMonkey / Common Controls (https://www.delphipraxis.net/18-gui-design-mit-vcl-firemonkey-common-controls/)
-   -   Delphi DBRichEdit, SQLSever via ADO (https://www.delphipraxis.net/136666-dbrichedit-sqlsever-via-ado.html)

FrankJ28 5. Jul 2009 16:30


DBRichEdit, SQLSever via ADO
 
Hallo,
folgendes Problem:
Ein DBRichEdit, verbunden via ADODataset an MS-SQL. Jegliche Einträge, Änderungen über das DBRichEdit werden nur als Plain-Text gespeichert (plaintext=false). Auch bereits enthaltenen RTF-Texte aus der DB werden gnadenlos als plaintext gespeichert. Schreibe ich hart im event beforepost eine rtf-code in das Datenbankfeld wird der auch korrekt gespeichert und anschließend dargestellt.
Jemand eine Idee? Ich bin mit meinem Latein am Ende.

Anmerkung: Gleicher Code via BDE und Paradox über TTable klappt prima, D2007.

Danke für jede Anmerkung

Ciao
Frank

Bernhard Geyer 5. Jul 2009 18:10

Re: DBRichEdit, SQLSever via ADO
 
Dann zeig doch deinen Code.

FrankJ28 5. Jul 2009 19:01

Re: DBRichEdit, SQLSever via ADO
 
Liste der Anhänge anzeigen (Anzahl: 1)
Hallo Bernhard,
danke für dein Interesse. Im Anhang ein kleines Testprogramm (Form, DBGrid, DBRichEdit) und ein SQL-Script um die Tabelle zu erstellen. Einfacher Versuch: RTF-Dokument in Zwischenablage, STRG+V. Ansicht ok, nach Speichern alles weg.
Danke und schönen Abend
Frank

Bernhard Geyer 5. Jul 2009 21:16

Re: DBRichEdit, SQLSever via ADO
 
Quellcode kann ich frühestens in 2 Wochen in der IDE testen - hab hier keine IDE.

FrankJ28 5. Jul 2009 22:53

Re: DBRichEdit, SQLSever via ADO
 
Hallo Bernhard,
an dem Code ist aber auch nichts Spannendes dran. Ein Form, ein DBRichEdit verbunden via Source/ADODataSet und ein Feld vom Typ Varchar, das vom DBRichEdit versorgt werden soll. Von dort kommt lediglich FlatText (obwohl nicht flat) in Richtung SQL-Server. Füttere ich mit einem string (Inhalt rtf-Code) direkt klappt die Ablage. Binde ich ein TTable mit Paradox dahinter an die DataSource, klappt die Ablage auch korrekt. Soviel zur Theorie, noch eine Idee? Ich leider nicht mehr.
Ciao

Frank

alzaimar 6. Jul 2009 05:44

Re: DBRichEdit, SQLSever via ADO
 
Könnte daran liegen, das die Spalte, die die RTF-Info enthält, als VarChar deklariert ist.

Versuchs mal mit einer TEXT-Spalte.

FrankJ28 6. Jul 2009 06:15

Re: DBRichEdit, SQLSever via ADO
 
Hallo Alzaimar,
das ist es, kurz geprüft und funktioniert, danke dafür. Hast Du auch eine Idee warum das Control sich beim Typ Varchar anders verhält? Wenn ich wie gesagt das Feld .AsString mit dem RTF-Code versorge klappt das auch. Trotzdem vielen Dank
Ciao
Frank

alzaimar 6. Jul 2009 06:23

Re: DBRichEdit, SQLSever via ADO
 
BLOBs im allgemeinen (bei SQL-Server: IMAGE bzw. TEXT, bei Paradox -glaube ich- MEMO) kommunizieren mit der Anwendung über einen BlobStream bzw. bildet das Delphi/ADO so ab. Das Richedit widerum gibt den RTF-Code nur dann preis, wenn man per Stream darauf zugreift. Also sollte es so klappen.

Der Zugriff 'AsString' mit RTF-Code klappt natürlich (mit VarChar), aber ich gehe mal davon aus, das Du den RTF-Code dann auch im Control siehst.

FrankJ28 6. Jul 2009 08:38

Re: DBRichEdit, SQLSever via ADO
 
Hallo Alzaimar,
nö, der harte RTF-Code wird korrekt wieder ausgeliefert und das DBRichEdit zeigt den dann auch wie erwartet an. Die VARCHAR-Variante hatte ich gewählt, da in den gängigen Dokumentationen um den SQL-Server von der Abkehr der bekannten BLOB-Varianten berichtet wird. Zitat: Neue Projekte sollten mit VARCHAR, NVARCHAR begonnen werden.
Ciao
Frank


Alle Zeitangaben in WEZ +1. Es ist jetzt 01:23 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