Entwickler-Ecke

Datenbanken - Unicode-Problem mit DBMemo mit TIBTable und TIBQery?


Siegbert - Sa 03.12.11 13:44
Titel: Unicode-Problem mit DBMemo mit TIBTable und TIBQery?
Hallo zusammen,

ich habe folgendes Problem: in einer Applikation die von Delphi 5 und BDE(Paradox) nach Delphi 2010 mit Interbase portiert wurde, wird an einer Stelle noch über eine TIBTable-Komponente auf die Datenbank zugegriffen. Dort macht ein Umbau auch großen Aufwand, daher soll es erst mal bei der TIBTable bleiben. Andere Bereiche sind aber bereits auf TIBQuery umgestellt.

Genau da tritt aber das Problem auf: über ein DBMemo das mit einer IBTable-Komponente verbunden ist kann ich das Memo-Feld der verbundenen Interbase-Tabelle problemlos beschreiben und wieder korrekt anzeigen.
Wenn ich das selbe Feld aber in einen anderen Formular über ein DBMemo das mit einer IBQuery-Komponente verbunden ist anzeigen lasse, stehen dort nur "chinesisch" aussehende Sonderzeichen.

Was mache ich da falsch? Habe ich irgendeine Eigenschaft der Komponenten übersehen, mit der man das Unicode-Verhalten steuern kann?

Wer kann mir einen Tipp geben?

Danke vorab, Siegbert


baka0815 - Di 13.12.11 12:49

So etwas ähnliches hatte ich mal, als ich einem CLOB-Feld anstatt per .AsMemo := 'Wert' den Wert per .AsString := 'Wert' zugewiesen habe.
Vielleicht hast du das Feld als String statt als Memo definiert?


Delete - Sa 17.12.11 01:41

Wenn alles korrekt kodiert ist, solltest Du per .AsWideString/.AsString bzw. über utf8decode/-encode rankommen... resp. deprecated methods... D5 hört sich vllt nach ansi an... ist es ursprünglich eine reine delphi-anwendung gewesen? (delphi war halt nicht unicode... so trivial es klingt; das ist es nicht!... ich hab auch viele probleme, die einfach aussehen mit alten anwendungen und unicode... gerade bei delphi-versionen <2009). benutzt du tnt?