Delphi-PRAXiS

Delphi-PRAXiS (https://www.delphipraxis.net/forum.php)
-   Datenbanken (https://www.delphipraxis.net/15-datenbanken/)
-   -   Delphi Unterschiedliche Darstellung von Blobfeld in TDBRichEdit bei verschiedenen DB-Kompos (https://www.delphipraxis.net/188038-unterschiedliche-darstellung-von-blobfeld-tdbrichedit-bei-verschiedenen-db-kompos.html)

Perlsau 26. Jan 2016 07:29

Datenbank: Firebird • Version: 2.5 • Zugriff über: Firedac & FibPlus

Unterschiedliche Darstellung von Blobfeld in TDBRichEdit bei verschiedenen DB-Kompos
 
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 :cry:

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 :roll:

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 ...

Sir Rufo 26. Jan 2016 08:05

AW: Unterschiedliche Darstellung von Blobfeld in TDBRichEdit bei verschiedenen DB-Kom
 
Hast du schon einmal die zurückgelieferten Bytes aus dem Blob verglichen?

Da müsste sich doch ein Unterschied finden lassen zwischen alt und neu

mkinzler 26. Jan 2016 08:14

AW: Unterschiedliche Darstellung von Blobfeld in TDBRichEdit bei verschiedenen DB-Kom
 
Im ersten Moment habe ich gedacht: "Das riecht nach Unicodeproblem". Aber in diesem Falle wäre ja auch der Plaintext wenig sinnvoll.

Sir Rufo 26. Jan 2016 08:26

AW: Unterschiedliche Darstellung von Blobfeld in TDBRichEdit bei verschiedenen DB-Kom
 
Nicht zwangsläufig ein Unicode Problem, wo man es vermuten würde (in Delphi), sondern eher im Firebird, denn der speichert AFAIK beim TextBlob auch noch die Codierung (COLLATE).

Da würde ich mal eher im Nebel drauf zeigen.

(Ich habe mit FB aber nie wirklich gearbeitet, insofern ist es mehr als im Trüben fischen bei mir :stupid:)

hanvas 26. Jan 2016 08:42

AW: Unterschiedliche Darstellung von Blobfeld in TDBRichEdit bei verschiedenen DB-Kom
 
Zitat:

Zitat von Perlsau (Beitrag 1328232)
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 :cry:

Falls Du keine "saubere Lösung" findest könntest Du ja auch :


1. AutoIt die Krämpfe verpassen und das hin und her kopieren per Script erledigen.
2. Temporär Code in beide Anwendungen einbauen. Anwendung 1 kopiert ins Clipboard und sende Nachricht an Anwendung 2, Anwendung 2 kopiert raus und sendet Nachricht zurück

cu Ha-Jö

Perlsau 27. Jan 2016 02:52

AW: Unterschiedliche Darstellung von Blobfeld in TDBRichEdit bei verschiedenen DB-Kom
 
Sorry für mein langes Schweigen, aber gestern sind hie ein paar unschöne Dinge passiert, während ich außer Haus beim einem Kunden war. Melde mich später wieder zurück.


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