Bonjour,
Dans l'IDE XE6 (ou +) , l'explorateur de données de Firedac utilise quel dll par défaut client pour se connecter à une base de données ??
Papy !
Bonjour,
Dans l'IDE XE6 (ou +) , l'explorateur de données de Firedac utilise quel dll par défaut client pour se connecter à une base de données ??
Papy !
la réponse est dans le titre de ta question non ?
NB: pour des réponses historiques, Firebird propose généralement de créer un GDS32.DLL par copie de FBCLIENT.DLL mais cela peut provoquer des conflits avec Interbase. Si tu n'as pas la bonne DLL le message d'erreur (que je n'ai plus en tête) n'est pas limpide.
Bonjour,
Si je ne dis pas de bêtises quand tu définis les paramètres de connexion, sur la fenêtre tu as un onglet 'Info' dans lequel tu vois le log de ce qui se passe lorsqu'il se connecte et autre, et il me semble qu'il indique la DLL à laquelle il se connecte.
D'ailleurs tu peux définir cela dans les fichiers INI qui se trouvent ici (Paramètres VendorLibWin32 et VendorLibWin64 pour les connexions Firebird) :
C:\Users\Public\Documents\Embarcadero\Studio\FireDAC
la doc :
http://docwiki.embarcadero.com/RADSt...otes_(FireDAC)
Mon souci est décrit sur le forum Firebird.
http://www.developpez.net/forums/d16...erver-embeded/
Pour être plus précis côté Delphi, dans mon XE6, impossible de connecter mon TFDConnection à ma base de données distante.
Dans mon code source, si j'utilise comme VendorHome le dossier ou se trouve ma dll version embeded, ça fonctionne.
Si j'utilise le répertoire qui contient la version "server", ça ne passe pas.
J'ai modifié le fichier FDDrivers.ini et j'ai créé une nouvelle section
Là, dans l'explorateur de données de l'IDE, si j'utilise FB21, ça fonctionne.[FB21]
; FB21 virtual driver will use specified Firebird client library
BaseDriverID=FB
VendorLibWin32=C:\Firebird_old\bin\fbclient.dll
VendorLibWin64=C:\ib\fb21_64\bin\fbclient.dll
Donc, il semble que seule la dll version embeded (C:\Firebird_old\bin\fbclient.dll) me permet d'accéder à ma base distante dans l'IDE.
Et c'est bien lié à Firedac parce que j'accède à mes données avec "SQL Manager lite for Interbase and Firebird" de SQLManager.net
:-(
Et j'ai effectivement interbase qui s'est installé en même temps que Delphi.
Attention que l'IDE est 32 bits seulement. il lui faut donc la Dll 32 bits et pas 64 bits.
Bonjour Thierry,
Effectivement :
C'est bien la même dll qui est dans C:\Program Files (x86)\Firebird\Firebird_2_5Brand = Firebird
Client version = 205069900
Client DLL name = C:\Windows\fbclient.dll
================================
Informations de session
================================
Echec de la connexion au SGBD.
[FireDAC][Phys][FB]Unable to complete network request to host "10.0.4.1".
Failed to establish a connection.
Je supprime C:\Windows\fbclient.dll et je retente la connexion.
ça fonctionne mais
Donc, là il prend la dll qui est dans le répertoire que j'avais défini dans le PATH de WindowsLoading driver FB ...
Brand = Firebird
Client version = 205029900
Client DLL name = C:\Firebird_old\bin\fbclient.dll
Je modifie le PATH en supprimant ce chemin.
Maintenant :
Je modifie le PATH et j'ajoute C:\Program Files (x86)\Firebird\Firebird_2_5Loading driver FB ...
Error: [FireDAC][Phys][FB]-314. Impossible de charger la bibliothèque du fournisseur [fbclient.dll or fbembed.dll]. Le fichier spécifié est introuvable.
Conseil : vérifiez qu'il est dans le PATH ou dans les répertoires EXE de l'application et qu'il a un nombre de bits de x86.
Echec du chargement du client du SGBD.
et maintenant :
:-(================================
Loading driver FB ...
Brand = Firebird
Client version = 205069900
Client DLL name = C:\Program Files (x86)\Firebird\Firebird_2_5\fbclient.dll
================================
Informations de session
================================
Echec de la connexion au SGBD.
[FireDAC][Phys][FB]Unable to complete network request to host "10.0.4.1".
Failed to establish a connection.
en complément, si je modifie mon PATH pour pointer sur le répertoire de la version embeded:
Donc, la version embeded se connecte bien aux données :-(Loading driver FB ...
Brand = Firebird
Client version = 205029900
Client DLL name = C:\Firebird_old\bin\fbclient.dll
Informations de session
================================
Current catalog =
Current schema =
Server version = WI-V2.5.6.27020 Firebird 2.5
WI-V2.5.6.27020 Firebird 2.5/tcp (JEANLUC)/P12
WI-V2.5.2.26540 Firebird 2.5/tcp (VM-7)/P12
Tu es bien sur un Delphi édition Entreprise ? Et pas sur l'édition Professionnelle ?
Fait intéressant : Depuis le poste où se trouvent les données , avec Berlin, je tente une connexion dans l'autre sens .
On dirait que la dll fbclient du server ne permet pas de se connecter à un poste distant :-(Loading driver FB ...
Brand = Firebird
Client version = 205069900
Client DLL name = C:\Windows\fbclient.dll
================================
Informations de session
================================
Echec de la connexion au SGBD.
[FireDAC][Phys][FB]Unable to complete network request to host "10.0.4.56".
Failed to establish a connection.
Ou alors j'ai raté une config quelque part
Bien sûr, si je tente l'accès à mes données locales, ça fonctionne
User_Name=sysdba
Password=*****
Protocol=TCPIP
Server=10.0.4.1
Port=3050
DriverID=FB
Infos client
================================
Loading driver FB ...
Brand = Firebird
Client version = 205069900
Client DLL name = C:\Windows\fbclient.dll
================================
Informations de session
================================
Current catalog =
Current schema =
Server version = WI-V2.5.6.27020 Firebird 2.5
WI-V2.5.6.27020 Firebird 2.5/tcp (JEANLUC)/P12
WI-V2.5.6.27020 Firebird 2.5/tcp (JEANLUC)/P12
Je n'avais pas ouvert le port 3051 sur la machine qui pose problème pour l'accès inverse depuis "Berlin".
Avec la dll fbclient qui se trouve dans Windows et qui est donc une copie de celle du server, l'accès est maintenant possible.
J'ai vérifié le pare-feu sur l'autre machine et le port ouvert correspond bien à celui utilisé par FB.
Mais ..... si j'ajoute le 3051 au 3050 dans le pare-feu, ça fonctionne en modifiant le port dans les paramètres de connexion. :-(
J'ai oublié que le 3050 est déjà pris par interbase ici aussi.
Donc, problème réglé ! un grand merci à vous deux !
Mais il me reste un petit détail : Dans l'inspecteur d'objet je peux mettre Port=3051 pour params du TFDConnection.
Dans l'éditeur de connexion par contre, dans XE6, pas de ligne pour le port contrairement à la version Berlin.
Si j'écris 10.0.4.1:3051 pour le server, je ramasse une erreur de base de données non disponible.
Quelle est la syntaxe pour définir le port ici ?
un / à la place du :
encore merci et bonne fêtes de fin d'année
Au moins 2016 ce termine bien, vu que le problème est résolu.
Bonnes fêtes de fin d'année.
Vous avez un bloqueur de publicités installé.
Le Club Developpez.com n'affiche que des publicités IT, discrètes et non intrusives.
Afin que nous puissions continuer à vous fournir gratuitement du contenu de qualité, merci de nous soutenir en désactivant votre bloqueur de publicités sur Developpez.com.
Partager