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

 Firebird Discussion :

Connexion client UTF8


Sujet :

Firebird

  1. #1
    Membre du Club
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 60
    Points
    60
    Par défaut Connexion client UTF8
    Bonjour,

    J'ai des problèmes pour me connecter à une base de donnée ayant un DEFAULT CHARSET UTF8 (Firebird 2.1).

    Si j'essaie de me connecter à la base en UTF8 avec isql ou IBExpert et ajouter une donnée accentuée dans un VARCHAR, alors j'ai le message d'erreur Malformed string.
    Par contre je peux me connecter en ISO8859_1 et insérer des données accentuées. Mais dans ce cas, les données insérées par isql ne sont pas rendues correctement sous IBExpert et inversement.

    Si je me connecte en ISO8859_1 avec IBExpert et en dos850 avec ISQL, alors c'est bon, je relis mes données correctement partour.

    Mais j'admet que j'y perd un peu mon latin dans tout ces histoires de jeux de données. Pour moi l'idéal serrait de me connecter en UTF8 car c'est pour une application qui doit supporter des jeux de caractères internationaux et des cliens sous différents jeux de données peuvent se connecter au serveur.

  2. #2
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    La connexion c'est une chose, mais la base elle est créée en UFT8 ? Vos colonnes de type caractère sont bien en UFT8 ?

  3. #3
    Membre du Club
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 60
    Points
    60
    Par défaut
    Oui oui !

    Voici un extrait du script de création :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SET SQL DIALECT 3;
    SET NAMES UTF8;
     
    CREATE DATABASE '127.0.0.1:C:\Documents and Settings\jimmy\Mes documents\Dev\TESTUTF.FDB'
    USER 'SYSDBA' PASSWORD 'masterkey'
    PAGE_SIZE 16384
    DEFAULT CHARACTER SET UTF8;
     
    CREATE TABLE CIVILITE (
        IDCIVILITE  INTEGER NOT NULL,
        LIBELLE     VARCHAR(100)
    );
    C'est justement là le problème, c'est que si je met aucun DEFAULT CHARACTER SET (donc NONE) alors je n'ai pas de problèmes ... mais quand je veux mettre UTF8 ... c'est comme si je n'avait pas UTF8 sur ma machine ou alors que le UTF8 de ma machine n'était pas le même que celui de la base ...

  4. #4
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Vous envoyez bien de l'UTF8 dans vos chaines ?

    Pas sur qu'ISQL sache le faire... Et IBExpert il me semble qu'il y a un editeur de chaine UFT8. Donc quand on veut insérer de l'UFT8 il faut utiliser cet éditeur.

    L'editeur apparait quand on clic sur les "..." de la chaine en question.

  5. #5
    Membre du Club
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 60
    Points
    60
    Par défaut
    Effectivement, c'est bon. Alors si je résume, pour que tout soit en unicode il fait :
    Avoir la base en unicode (Default charset UTF8)
    Se connecter avec le client avec une connexion unicode
    Convertir les chaines de données en unicode

    Pas évident ... maintenant que j'arrive à le faire avec IBExpert, faut que j'arrive à insérer des chaines unicode avec Delphi en passant par ODBC !

  6. #6
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    Vous n'avez pas à traduire vos chaines en UTF8, si vous travaillez dejà en UFT8...

    Ibexpert ne travaille pas en natif en UFT8, c'est pour ca qu'il propose un editeur de chaine UFT8.


    Delphi + ODBC ????

  7. #7
    Membre du Club
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 60
    Points
    60
    Par défaut
    Oui ... pour mon grand désespoire on m'a 'imposé' Delphi + BDE + ODBC ... si tout marche bien en UTF8 avec toutes ces couche alors moi je veux bien faire une grande révérence ...

  8. #8
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 53
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    C'est quand même étrange de démarrer une nouvelle application basée sur une technologie BDE qui n'est plus maintenue et donc à l'abandon depuis quelques années déjà. (Ca fonctionne sous vista ?)

    Outre l'UFT8 posez vous la question (ou testez bien) l'aspect transactionnel.
    Je m'avance peut etre mais il ne me semble pas que bde/odbc gère les transactions (ou du moins 1 connexion = 1 transaction ce qui peut etre une contrainte.).

  9. #9
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    pour moi c'est plus qu'étrange, c'est une erreur, même une double erreur
    mais bon
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  10. #10
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 031
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 67
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur informatique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 031
    Points : 40 930
    Points
    40 930
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par Barbibulle Voir le message
    C'est quand même étrange de démarrer une nouvelle application basée sur une technologie BDE
    d'accord et la couche l'ODBC en prime ?????
    Ca fonctionne sous vista ?
    OUI, malgré tout
    MVP Embarcadero
    Delphi installés : D3,D7,D2010,XE4,XE7,D10 (Rio, Sidney), D11 (Alexandria), D12 (Athènes)
    SGBD : Firebird 2.5, 3, SQLite
    générateurs États : FastReport, Rave, QuickReport
    OS : Window Vista, Windows 10, Windows 11, Ubuntu, Androïd

  11. #11
    Membre du Club
    Développeur informatique
    Inscrit en
    Juillet 2005
    Messages
    87
    Détails du profil
    Informations professionnelles :
    Activité : Développeur informatique

    Informations forums :
    Inscription : Juillet 2005
    Messages : 87
    Points : 60
    Points
    60
    Par défaut
    Ben chui tout à fait d'accord ... et plus j'avance plus je recule devant ce choix
    Mais si j'arrive à trouver un truc qui le rend vraiment bloquant (UTF8) je vais peut-être arriver à le faire changer.

  12. #12
    Membre expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 60
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    un truc blocant ?
    facile, tes perfs seront très très mauvaises, tu n'arivera pas à gérer correctement tes transactions et ton application va s'effondrer sous la charge.
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

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

Discussions similaires

  1. Réponses: 7
    Dernier message: 22/02/2007, 11h29
  2. [IB6.0]-Perte de connexion Client
    Par GroupeEL dans le forum Connexion aux bases de données
    Réponses: 3
    Dernier message: 21/03/2005, 15h43
  3. [SOCKET] connexion client serveur avec applet
    Par kaiser2003 dans le forum Applets
    Réponses: 2
    Dernier message: 06/10/2004, 22h32
  4. comment gerer plusieurs connexions client/serveur
    Par naili dans le forum C++Builder
    Réponses: 3
    Dernier message: 14/08/2002, 16h58
  5. Je ne peux établir une connexion cliente sous Linux.
    Par Anonymous dans le forum CORBA
    Réponses: 5
    Dernier message: 16/04/2002, 15h57

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