Einzelnen Beitrag anzeigen

Perlsau
(Gast)

n/a Beiträge
 
#1

Unterschiedliche Darstellung von Blobfeld in TDBRichEdit bei verschiedenen DB-Kompos

  Alt 26. Jan 2016, 07:29
Datenbank: Firebird • Version: 2.5 • Zugriff über: Firedac & FibPlus
Für einen gelegentlichen Delphi-Entwickler soll ich aus einem meiner vor Jahren für den Eigenbedarf entwickelte Projekte ein bestimmes Modul ausklinken und als eigenständige Anwendung fertigstellen. Es handelt sich um eine Projektverwaltung (ProCode, ein paar wenige erinnern sich vielleicht noch, ist aber egal), die eine Codeverwaltung beinhaltet. Die will er unbedingt haben, mitsamt den Codeschnipseln, die sich bei mir angesammelt haben, aber ohne das Ganze drumherum und natürlich mit Quellcode zur Weiterentwicklung mit einer neueren Delphi-Version.

@RWarnecke: Die von dir damals netterweise für den Eigenbedarf genehmigten Codebeispiele werden selbstverständlich nicht weitergegeben

Nun hatte ich ProCode damals mit FibPlus und D2009 entwickelt. Blobfelder, die via TjvDBRichEdit dargestellt und geändert wurden, waren als Textblob konzipiert. Seit ich nun IbDac verwende, hat sich herausgestellt, daß ich die besten Ergebnisse und die wenigsten Probleme im Zusammenhang mit DBRichEdit-Komponenten habe, wenn ich die Blobfelder als binary erstelle. Damit arbeite ich inzwischen seit mehreren Jahren problemlos. Nun muß ich aber, wie oben bereits angedeutet, mit einer neueren Delphi-Version arbeiten, Kundenlaptop hab ich hier. Dort gibt's jedoch nur Firedac, keine anderen DB-Komponenten, mit denen ich auf die Firebird-DB zugreifen könnte. Ich kann/darf auch keine anderen DB-Komponenten installieren.

Für die Beschreibung der einzelnen Codeschnipsel (Feld BESCHREIBUNG) habe ich damals wie gesagt RichEdit gewählt, weil man da ansprechend formatieren kann. Der Code selber wird mit SynEdit dargestellt, das ist quasi Plaintext und liegt ebenfalls in einem TextBlob (Feld CODE). Mir gelingt es jedoch nicht, das Blobfeld mit der Beschreibung, das in einem TjvDBRichEdit angezeigt werden soll, korrekt auszulesen. Die Anzeige sieht immer aus, als ob Plaintext auf True stehen würde. Tut es aber nicht. Mir scheint, ich habe bereits alle nur denkbaren Versuche unternommen, dieses Problem zu beheben. Auch der Versuch, den Plaintext aus der Quell-DB als Plaintext in das Ziel-RichEdit einzufügen und danach das Property PlainText auf False zu schalten, schlug fehl: Die Steuerzeichen steuern nichts, sondern bleiben sichtbar. Die Darstellung im TjvRichEdit, das die Quelldaten aufnehmen soll, ist fehlerhaft. Angefangen zu übertragen (von der alten in die neue DB) hatte ich ohne RichEdit-Komponenten, mit Streams oder direkt mit Assign. Die Darstellung war immer schon im DBRichEdit, mit dem ich die Quelle darstelle, fehlerhaft, egal was ich auch einstelle.

Das einzige, das wirklich funktioniert, ist das händische Übertragen zwischen beiden Programmen: Ctrl-A und Ctrl-C in Procode, Wechsel zu der neuen Anwendung, ins DBRichEdit reinklicken und Ctrl-V drücken, und das nahezu 1000 Mal! Nee, da krieg ich ja Krämpfe

Also nochmal zusammenfassend:

  • Procode, mit FibPlus, liest aus einem TextBlob aus und stellt korrekt in einem TJvDbRichEdit dar.
  • CodeBank, die neue Anwendung mit Firedac, liest aus einem BinaryBlob aus und stellt ebenfalls korrekt dar.
  • CodeBank, die neue Anwendung mit Firedac, liest aus dem alten TextBlob aus und stellt Plaintext dar. Plaintext steht aber auf False.

Jetzt könnte ich höchstens noch versuchen, mit D2009 das Ganze zu übertragen, indem ich dort IbDac und FibPlus verwende. Das wäre dann wohl die letzte Möglichkeit, wobei der Erfolg nicht garantiert ist. Wenn aber jemand irgend einen Tip hat, wie ich noch weitere zusätzliche Arbeit vermeiden kann, wäre ich echt erleichtert. Ich krieg schon'n steifen Hals vom sturen Glotzen auf die Mattscheibe

Aber keine unnötige Hektik, es eilt nicht besonders, ich hätte es eben nur gern heute in einem Aufwasch geschafft. Morgen ist aber auch noch ein Tag, obwohl der heute ja gerade erst angefangen hat, zumindest für die meisten, für mich schon sehr früh ...

Geändert von Perlsau (26. Jan 2016 um 07:31 Uhr)
  Mit Zitat antworten Zitat