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

Bases de données Delphi Discussion :

[Firebird] Champs avec Charset différent de none qui n'apparaissent pas


Sujet :

Bases de données Delphi

  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 [Firebird] Champs avec Charset différent de none qui n'apparaissent pas
    Bonjour,

    J'ai une base de donnée firebird que j'accède via ODBC (Firebird 2.1). Ma base est créée de cette manière :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    SET SQL DIALECT 3;
     
    SET NAMES UTF8;
     
    CREATE DATABASE '127.0.0.1/gds_db:C:\Documents and Settings\jimmy\Mes documents\Dev\Base.FDB'   
       USER 'SYSDBA'
       PASSWORD 'masterkey'
       PAGE_SIZE 16384
       DEFAULT CHARACTER SET UTF8;
    Je me connecte à ma base via ODBC avec un TDatabase et je l'intéroge avec un TQuery :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
        FDataBase.DatabaseName := 'Base';
        FDataBase.AliasName := 'Base';
        FDataBase.Params.Add('UID=sysdba');
        FDataBase.Params.Add('PASSWORD=masterkey');
        FDataBase.Params.Add('CHARSET=UTF8');
        FDataBase.LoginPrompt := False;
        FDataBase.Open;
        FQuery.DatabaseName := FDataBase.DatabaseName;
    Lorsque je veux récupérer des données, mes champs VARCHAR avec un CHARSET à UTF8 n'apparaissent pas. Par exemple j'ai cette table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE TABLE DIVISION (
      IDDIVISION INTEGER NOT NULL,
      CODE VARCHAR(8) CHARACTER SET UTF8 NOT NULL COLLATE UTF8,
      LIBELLE VARCHAR(30) CHARACTER SET UTF8 NOT NULL COLLATE UTF8,
      IDNIVEAU INTEGER,
    );
    Après avoir fait un SELECT * FROM DIVISION; avec le TQuery, si je boucle sur FQuery.Fields je retrouve mes champs IDDIVISION et IDNIVEAU mais pas CODE et LIBELLE. Si je change le CHARACTER SET à NONE, alors ces champs apparaissent !!

    J'admet que je n'arrive vraiment pas à trouver pourquoi ...

  2. #2
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2002
    Messages
    735
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 735
    Points : 807
    Points
    807
    Par défaut
    ODBC + BDE + UTF8 avec Firebird : je suis pas sure que ça puisse fonctionner...

    Pourquoi ne pas supprimer la couche BDE ?

  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
    Premièrement j'ai trouvé un petit point, si j'ai mes champs avec CHARACTER SET UTF8 mais COLLATE UNICODE, ça marche, mais je ne sais pas trop les concéquences de cette config.

    Sinon comment accéder aux données sans BDE ?

  4. #4
    Rédacteur/Modérateur

    Avatar de SergioMaster
    Homme Profil pro
    Développeur informatique retraité
    Inscrit en
    Janvier 2007
    Messages
    15 042
    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 042
    Points : 40 958
    Points
    40 958
    Billets dans le blog
    62
    Par défaut
    Citation Envoyé par stanislas Voir le message
    Sinon comment accéder aux données sans BDE ?
    UIB,ZEOSDBO, FIBPlus etc ..... (et en plus sans la couche ODBC )
    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

  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
    Oui, sauf que c'est pas moi qui est choisis d'utiliser la couche ODBC ... on me l'a imposée ...

Discussions similaires

  1. Deux count sur même champ avec conditions différentes
    Par steerayInFrance dans le forum Développement
    Réponses: 4
    Dernier message: 14/06/2011, 14h20
  2. fonction avec if sur input radio qui ne renvoie pas la bonne valeur
    Par eddflo dans le forum Général JavaScript
    Réponses: 1
    Dernier message: 08/06/2009, 01h20
  3. Réponses: 3
    Dernier message: 04/09/2008, 08h44
  4. Réponses: 2
    Dernier message: 29/01/2008, 22h53
  5. Réponses: 4
    Dernier message: 15/05/2007, 10h10

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