IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Lazarus Pascal Discussion :

Zeos + Firebird + TDBGrid et caractères étendus [Lazarus]


Sujet :

Lazarus Pascal

  1. #1
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut Zeos + Firebird + TDBGrid et caractères étendus
    Bonjour a tous !

    Je découvre Lazarus depuis quelques jours et je me suis laissé prendre au piège de cet environnement

    J'ai installé aussi le composant Zeos pour faire quelques test avec Firebird.

    J'ai pris l'habitude de créer mes bases de données avec le jeu de caractères ISO8859_1 mais le TDBGrid ne m'affiche pas les caractères étendus (par exemple le ° de n°). Aprés quelques recherches j'ai essayé de changer le jeu de caractère via la l'objet ZConnection.Properties mais rien n'y fait. Ensuite j'ai recrée ma base en UTF8 (en fait je comprend pas grand chose aux jeux de caractéres des bases de données, je penses que je vais ouvrir un nouveau post sur ce sujet) et la le TDBGrid m'affiche bien mes caractères étendus !

    Comment puis je afficher mes caractères dans un TDBGrid tout en gardant le jeu de caractère ISO8859_1 de mes bases ?

    De plus, j'ai dans une de mes tables un champ au format decimal(8,3) avec par exemple une valeur 100, le TDBGrid m'affiche la valeur 1E2 ? Pourquoi ? Comment puis je me servir de la propriété DisplayFormat ?

  2. #2
    Membre éprouvé
    Profil pro
    Développeur informatique
    Inscrit en
    Janvier 2010
    Messages
    469
    Détails du profil
    Informations personnelles :
    Âge : 66
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Janvier 2010
    Messages : 469
    Points : 1 100
    Points
    1 100
    Par défaut
    Bonjour,

    As-tu impérativement besoin que la base soit en ISO-8859 ? Si non, le plus simple de loin, et le sens de l'histoire, c'est de la créer en UTF-8... Il n'y a guère que si une vieille application existante doit continuer à utiliser ta base qu'il est inévitable de conserver le codage ISO qui est en train de devenir obsolète.

    Sinon, une solution performante peut être de faire faire le codage par ton SGBD, de manière à ce qu'il envoie au client de l'UTF-8, même si son stockage est en ISO. Sql-Server, Oracle et d'autres, le permettent. Je ne sais pas pour FireBird.

    Enfin, si ce n'est pas possible, il y a la solution de coder et décoder d'un jeu de caractère dans l'autre dans les événements OnSetText et OnGetText des champs Chaîne de chaque table. Il existe pour ça l'unité LConvEncoding qui contient tout ce qu'il te faut. Je peux te donner plus de détails si besoin.
    Cordialement,
    Tintinux

    Initiateur de Gestinux, une comptabilité gestion open-source, pour Linux, Windows et Mac OS.
    Une version stable et une autre en développement, avec Lazarus : vous pouvez aider à la tester, la traduire et à la développer.

  3. #3
    Membre confirmé
    Profil pro
    Inscrit en
    Avril 2010
    Messages
    245
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2010
    Messages : 245
    Points : 534
    Points
    534
    Par défaut
    Bonsoir,

    Lazarus affichant le jeu de caractères étendu, il faut définir la connexion à Firebird en UTF8. Le jeu utilisé pour les chaînes dans la base peut être différent, ISO8859_1 par exemple, Firebird se charge du transcodage. Mais attention dans ce cas, Firebird refusera les caractères qui ne font pas partie du jeu ISO8859_1. Je me suis laissé dire que contrairement à une idée très répandue, avec nos Windows français il était préférable d'utiliser le WIN1252 si tu veux garder un jeu sur 1 octet. Sinon l'UTF8 ne posera pas de problème.
    Concernant ZEOS, j'ignore si maintenant il est bien adapté à Firebird 2.5. Je préfère utiliser les UIB beaucoup plus rapides mais uniquement Interbase ou Firebird et pas riche en dataset.

    A+
    André

  4. #4
    Membre éclairé
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    562
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 562
    Points : 859
    Points
    859
    Par défaut
    Bon, en fait il s'agissait d'un nouveau developpement. J'ai donc créer ma base de données avec le jeu UTF8 et je n'ai plus de pb avec les caractères bizarre. Merci a tous.

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. ZEOS+Firebird 2.1 + UTF8 D2010
    Par SergioMaster dans le forum Bases de données
    Réponses: 53
    Dernier message: 20/07/2012, 11h54
  2. [XML]Comment utiliser les caractère étendus
    Par leminipouce dans le forum Langage
    Réponses: 2
    Dernier message: 31/10/2008, 14h59
  3. [BDS2006-ADO-Sybase] Problème de caractères étendus
    Par MICLANG dans le forum Bases de données
    Réponses: 1
    Dernier message: 06/11/2007, 19h26
  4. Importation de caractères étendus
    Par MICLANG dans le forum Sybase
    Réponses: 1
    Dernier message: 06/11/2007, 19h24

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo