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 :

[FireBird]Problème de fonctionnement du pilote ODBC !


Sujet :

Firebird

  1. #1
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 441
    Par défaut [FireBird]Problème de fonctionnement du pilote ODBC !
    Salut à tous.

    Je suis sous Firebird 5.0.3, il me semble la dernière version à ce jour.
    J'utilise ODBC sans problème avec le pilote dont la version est 2.0.5.156, que l'on trouve ici et qui date du 18 mai 2017.
    J'ai un test ODBC/PDO qui fonctionnait jusqu'à présent, mais avec cet ancien pilote ODBC.
    Avant, c'était je crois dans la version Firebird 3.0.0. Je ne me suis plus penché sur ce problème depuis.

    Je me suis dit que j'allais résoudre ce problème en installant une autre version, plus récente, de ce même pilote ODBC.
    J'ai trouvé la version 3.0.0.16, qui se nomme "Firebird ODBC Driver".
    L'ancien pilote se nomme quant à lui "Firebird/InterBase(r) driver" (la version 2.0.5.156), pour faire la distinction.

    Quand je passe par l'utilitaire "Administrateur de Source de données ODBC (64 bits)", je vois le nouveau pilote (3.0.0.16) dans l'onglet "Pilote ODBC".
    J'ai créé dans l'onglet "Sources de données Utilisateur", une instance de ce nouveau pilote.
    J'ai renseigné pour tester l'accès à la base Employee de FireBird, et le teste fonctionne correctement.
    J'ai refait la même chose dans l'onglet "Sources de données Système", avec le même succès.
    A priori, l'installation de ce nouveau pilote semble fonctionner correctement, au moins à partir de la "source de données ODBC (64 bits)".
    Je précise que je suis en 64 bits dans Firebird , ainsi que dans ce pilote ODBC.

    J'ai fait quelques tests et à chaque fois, je me retrouve avec cette erreur que je n'arrive pas à résoudre :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection à FireBird impossible : SQLSTATE[] SQLDriverConnect: 0
    Voici le script PHP (version 8.5.4) qui fait la connexion :
    Code php : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    <?php
    require_once($_SERVER['DOCUMENT_ROOT'].'/Scripts/FireBird_Password_2.php');
     
    /*-----------------------------------------------------*/
    /* Informations pour la connexion à la base de données */
    /*-----------------------------------------------------*/
    /*
    $nom_du_serveur  = "odbc:Driver={Firebird/InterBase(r) driver};Server=inet://127.0.0.1:3050;database=Employee;Client=F:/Wamp/bin/firebird/courant/fbclient.dll;charset=WIN1252;";
    */
     
    $nom_du_serveur  = "odbc:Driver={Firebird ODBC Driver}; DBNAME=Employee;CHARSET=UTF8;";
     
    $options         = array(
    	PDO::ATTR_ERRMODE => PDO::ERRMODE_EXCEPTION,
    	PDO::ATTR_DEFAULT_FETCH_MODE => PDO::FETCH_ASSOC
    );
     
    /*----------------------*/
    /* Connexion au Serveur */
    /*----------------------*/
     
    try {
    	$link = new PDO($nom_du_serveur,$nom_utilisateur,$mot_de_passe,$options);
    }
    catch (PDOException $e)
    {
    	echo "<br>Connection à FireBird impossible : ", htmlentities($e->getMessage());
    	die();
    }
    ?>
    La base de données se trouve là : "F:\Wamp\bin\firebird\courant\examples\empbuild\employee.fdb".
    Employee est un alias qui est renseigné dans databases.conf.

    Qu'est-ce qui ne va pas avec cette connexion ?

    Je précise que cela fonctionne parfaitement en PDO pur et en ODBC pur, mais pas en ODBC/PDO.
    J'utilise le nouveau pilote que pour le test ODBC/PDO, pas ailleurs.

  2. #2
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 441
    Par défaut
    si maintenant, je fais ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom_du_serveur = "odbc:Dsn=Employee_ODBC_4";
    et bien ça fonctionne !

    Le nom de ce DSN (Employee_ODBC_4) a été créé dans l'outil "Sources de données ODBC (64 bits)" dans l'onglet "Sources de données système", pour la base de données Employee.fdb. J'ai vérifié et depuis cette outil, l'accès se fait correctement.

    Je suppose que la syntaxe que j'utilise dans mon message précédent ne doit pas être correcte.
    J'ai pourtant interrogé ChatGPT à ce sujet, mais tous les exemples qu'il me donne ne fonctionne pas.
    J'ai toujours la même erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Connection à FireBird impossible : SQLSTATE[] SQLDriverConnect: 0
    et je ne comprends pas pourquoi.

  3. #3
    Membre prolifique Avatar de Artemus24
    Homme Profil pro
    Agent secret au service du président Ulysses S. Grant !
    Inscrit en
    Février 2011
    Messages
    7 441
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Agent secret au service du président Ulysses S. Grant !
    Secteur : Finance

    Informations forums :
    Inscription : Février 2011
    Messages : 7 441
    Par défaut
    Comme d'habitude, ChatGPT m'induit en erreur.

    La bonne syntaxe est la suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $nom_du_serveur = "odbc:Driver={Firebird ODBC Driver};Dbname=127.0.0.1:C:/chemin/EMPLOYEE.FDB;Client=C:/chemin/fbclient.dll;";
    P.S.: Je viens de trouver une version plus récente de ce pilote, la version 3.0.1.21 que j'ai installée.

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

Discussions similaires

  1. Pilote Odbc FireBird on Ubuntu
    Par le_dilem dans le forum Firebird
    Réponses: 1
    Dernier message: 19/05/2012, 06h50
  2. [CR8][Oracle] Comment obtenir le Pilote odbc
    Par anis_acting dans le forum Connectivité
    Réponses: 3
    Dernier message: 17/01/2005, 08h47
  3. Erreur Pilote ODBC sur pages ASP
    Par zouritte dans le forum ASP
    Réponses: 2
    Dernier message: 12/12/2004, 13h42
  4. pilotes odbc pour linux pour attaquer une BD oracle et sql S
    Par mloul dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 08/12/2004, 15h58
  5. [Sybase] Pilote ODBC Sybase sous NT 4.0
    Par SoaB dans le forum Sybase
    Réponses: 2
    Dernier message: 23/10/2002, 12h27

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