J'essaye en vain depuis un moment d'afficher correctement une table unicode dans Delphi. J'utilise Firebird 2.1, Delphi 2007 et les composants IBx livrés avec.
La base a été créée en Default Caracter Set UTF8 et elle contient une seule table :
J'ai ajouté deux lignes avec IBExpert avec un texte Unicode ou je vois bien les données correctement.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4 CREATE TABLE TRADUCTIONS( NUMERO Float NOT NULL, TEXTE Varchar(200) character set UTF8 );
Dans Delphi j'utilise la connexion suivante :
Ensuite j'ai un TntDbGrid lié à un TIBQuery. Et là ca ne va plus : les données sont affichées en String simple.
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3 Params.Add('USER_NAME=SYSDBA'); Params.Add('PASSWORD=masterkey'); Params.Add('lc_ctype=UTF8');
Les types de champs autocréés sont :
TFloatField (numero, normal)
TIBStringField (texte, IBStringField n'est pas un type de chemp unicode )
Pour retirer le doute sur le TntDbGrid j'ai essayé aussi de lire le résultat de la requète à la main dans un tntLabel mais j'ai le même soucis.
Partager