Unicode mit dbExpress und InterBase 2007: 'erwartet: WideString, gefunden: String' ?

29/04/2008 - 09:13 von Michael Justin | Report spam
Hallo Newsgroup

Ein kleines Phànomen beschàftigt mich nun bei meinem Versuch, Unicode in
Delphi 2007 (inkl. Dezemberupdate) mit InterBase 2007 zu verwenden.

Hier die Beschreibung meines Tests:

* in der Beispieldatenbank employee.gbd ein neues Feld mit Zeichensatz
UTF8 anlegen (z.B. COMPANY.NAME_UTF8)
* darin Unicodezeichen eingeben (z.B. mit IBExpert)
* ein Delphi-Projekt mit TSQLConnection -> TSQLQuery und Code zum Öffnen
der Abfrage (z.B. Button)
* die Connection mit ServerCharSet=UTF8 konfigurieren
* in der Query nur dieses Feld abfragen (select NAME_UTF8 from company)
* der Feldeditor schlàgt NAME_UTF8 vor vom Typ TWideStringField

Wenn man das Feld über den Feldeditor persistent macht, und dann das
Programm startet, erscheint die Meldung "... Unterschiedliche Typen für
Feld 'NAME_UTF8'; erwartet: WideString, gefunden: String ..."

Zur Designzeit wird also ein WideString erkannt, zur Laufzeit ein String?

LoadParamsOnConnect steht auf False, ich hatte zuerst vermutet, dass ich
da etwas falschgemacht habe.


Hat jemand eventuell schon positive Erfahrungen mit Verbindungen zu
InterBase 2007 mit UTF8 Encoding, dbExpress und Delphi 2007?

Konkret brauche ich nur Tabellenfelder die reine ASCII-Zeichen enthalten
(ohne Umlaute), also vermutlich das NONE Encoding, sowie eine sehr
kleine Anzahl von UTF8 Feldern. Ich könnte, wenn dbExpress das nicht
unterstützt, theoretisch alles als ANSI deklarieren und die UTF8
Encoding / Decoding - Schritte komplett im Client übernehmen.

Viele Grüße
Michael Justin
SCJP, SCJA
betasoft - Software for Delphi™ and for the Java™ platform
http://www.mikejustin.com - http://www.betabeans.de
 

Lesen sie die antworten

#1 Michael Justin
29/04/2008 - 09:37 | Warnen spam
Michael Justin schrieb:

unterstützt, theoretisch alles als ANSI deklarieren und die UTF8



Sorry, sollte heissen 'alles als NONE deklarieren' ...

Michael

Ähnliche fragen