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 :
Voici le script PHP (version 8.5.4) qui fait la connexion :
Code : Sélectionner tout - Visualiser dans une fenêtre à part Connection à FireBird impossible : SQLSTATE[] SQLDriverConnect: 0
La base de données se trouve là : "F:\Wamp\bin\firebird\courant\examples\empbuild\employee.fdb".
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(); } ?>
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.






Répondre avec citation

Partager