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 :

Firedac MySQL: premier pas - impossible de me connecter à la base


Sujet :

Bases de données Delphi

  1. #1
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut Firedac MySQL: premier pas - impossible de me connecter à la base
    Bonjour,

    J'ai installé un WAMP avec MySQL 64 bits (v8.0.18) sur un autre PC qui est en 192.168.0.11
    J'accède bien au WAMP depuis mon PC de dev via PhpMyadmin, donc pas de problème de réseau.
    J'ai la version de delphi 10.3 Update 3
    Je suis bien sur Windows 64 bits

    - Je sélectionne la plateforme WIN64
    - J'ai ajouté les deux composant TFDPhysMySQLDriverLink et TFDConnection.
    - J'ai copié le fichier libmysql.dll (que j'ai récupéré dans le WAMP) dans le dossier WIN64/debug de mon application.
    - J'ai indiqué le chemin de cette librairie dans la propriété VendorLib de FDPhysMySQLDriverLink1
    - Je double clique sur FDConnection1, je renseigne le nom de la base, le serveur (IP) le port et je clique sur TESTER
    Et là j'ai une erreur m'indiquant qu'il faut une DLL 32 bits !!!
    Nom : image_firedac.png
Affichages : 1737
Taille : 49,2 Ko
    Pourquoi ? alors que je compile en 64 bits, que le WAMP est en 64 bits.

    Dans l'onglet Infos j'ai ceci:
    ================================
    Paramètres de définition de connexion
    ================================
    Database=crystalxe
    User_Name=root
    Server=192.168.0.11
    DriverID=MySQL
    ================================
    FireDAC info
    ================================
    Tool = RAD Studio 10.3
    FireDAC = 17.0.0 (Build 93731)
    Platform = Windows 32 bit
    Defines = FireDAC_NOLOCALE_META;FireDAC_MONITOR
    ================================
    Infos client
    ================================
    Loading driver MySQL ...
    Error: [FireDAC][Phys][MySQL]-314. Impossible de charger la bibliothèque du fournisseur [C:\soft\Dev_Delphi\MySQL_FD\Win64\Debug\libmysql.dll]. Library has unsupported architecture [x64]. Required [x86].
    %1 n’est pas une application Win32 valide
    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.
    ================================
    Informations de session
    ================================
    Non connecté au SGBD.

    Pourtant mon Windows est bien 64 bits

    Merci
    Franck

  2. #2
    Membre Expert
    Avatar de pprem
    Homme Profil pro
    MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Inscrit en
    Juin 2013
    Messages
    1 876
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loiret (Centre)

    Informations professionnelles :
    Activité : MVP Embarcadero - formateur&développeur Delphi, PHP et JS
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Juin 2013
    Messages : 1 876
    Par défaut
    Bonsoir Franck

    Ce qui m'intrigue c'est FireDAC qui dit qu'il est sur une plateforme Windows 32 bits.

    Le projet est-il bien compilé en Windows 64 ?

  3. #3
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Je double clique sur FDConnection1, je renseigne le nom de la base, le serveur (IP) le port et je clique sur TESTER
    tu testes donc la connexion dans l'IDE Delphi qui est une application 32 bits, à qui il faut une version 32bits de la DLL.

    Par ailleurs le fait que phpMyAdmin accède au serveur n'implique absolument pas que celui-ci soit configuré pour un accès distant; ce n'est pas le navigateur qui fait la connexion mais PHP qui se connecte localement depuis le serveur.
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  4. #4
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 569
    Billets dans le blog
    65
    Par défaut
    Bonjour,
    Citation Envoyé par Paul TOTH Voir le message
    tu testes donc la connexion dans l'IDE Delphi qui est une application 32 bits, à qui il faut une version 32bits de la DLL.
    Paul à tout à fait raison, il faut que la DLL version 32 bits existe dans SYSWOW64.

    un petit tour dans docwiki à cette page et on trouve cette petite reamarque
    Remarque : Si vous utilisez un serveur SQL 64 bits, les DLL client seront également en 64 bits. Pour établir une connexion à la conception, ou pour utiliser ce serveur avec une compilation 32 bits, téléchargez les DLL 32 bits depuis http://dev.mysql.com/downloads/connector/c/#downloads.

  5. #5
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    Merci Paul et Sergio,

    Mon Windows est bien une version 64 bits.
    Je compile bien en spécifiant la plateforme 64 bits dans l'EDI.
    J'utilise bien une DLL 64 bits: c'est celle du serveur WAMP64.

    Je viens de faire l'essai sur un autre PC, et c'est le même problème.
    En revanche, j'arrive à me connecter en utilisant l'exemple C:\Users\Public\Documents\Embarcadero\Studio\20.0\Samples\Object Pascal\Database\FireDAC\Samples\Getting Started\MySQL

    Bien sur dans cette exemple il attend à trouver une table qui s'appelle categories et qui n'existe pas donc j'ai une erreur m'indiquant qu'il ne trouve pas la table mais toutes les étapes de connexion sont passées après avoir mis les bonnes dll, une par une, dans le dossier de l'exe. Par contre cet exemple n'utilise pas FDConnection !!

    N'y aurait-il pas un problème avec FDconnection en 64 bits ? je commence à me poser des questions...

    Merci

  6. #6
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    Bon finalement j'ai réussi une connexion à la base en codant les paramètres de connexions, comme cela est fait dans l'exemple "Getting Started\MySQL"
    Code : 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
      with FDConnection do
      begin
        Close;
        // create temporary connection definition
        with Params do
        begin
          Clear;
          Add('DriverID=MySQL');
          Add('Server=' + edtServer.Text);
          Add('Port=' + edtPort.Text);
          Add('Database=' + edtDB.Text);
          Add('User_Name=roots');
        end;
        Open;
        FDQuery.Open;
      end;
    Maintenant ça marche, je peux lire mes tables.
    Par contre la lecture d'une table de plusieurs millions d'enregistrements dans une TDBGRid met un temps fou, mais je vais creuser et au pire ouvrir un autre fil de discussion dans ce forum.

  7. #7
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    J'ai enfin résolu définitivement le problème.
    Pour accéder à la BDD depuis l'EDI, il faut copier le fichier libmysql.dll version 32 bits dans le dossier C:\Program Files (x86)\Embarcadero\Studio\20.0\bin
    Et ceci même si on est sur un OS 64 bits, avec une base MySQL 64 bits et qu'on compile en 64 bits !!!!
    C'est fort quand même ! Que de temps perdu !

  8. #8
    Expert éminent
    Avatar de Paul TOTH
    Homme Profil pro
    Freelance
    Inscrit en
    Novembre 2002
    Messages
    8 964
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 55
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Freelance
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Novembre 2002
    Messages : 8 964
    Par défaut
    Citation Envoyé par franckcl Voir le message
    J'ai enfin résolu définitivement le problème.
    Pour accéder à la BDD depuis l'EDI, il faut copier le fichier libmysql.dll version 32 bits dans le dossier C:\Program Files (x86)\Embarcadero\Studio\20.0\bin
    Et ceci même si on est sur un OS 64 bits, avec une base MySQL 64 bits et qu'on compile en 64 bits !!!!
    C'est fort quand même ! Que de temps perdu !
    en même temps si tu lisais les réponses...

    Citation Envoyé par Paul TOTH Voir le message
    tu testes donc la connexion dans l'IDE Delphi qui est une application 32 bits, à qui il faut une version 32bits de la DLL.
    par ailleurs, c'est une mauvaise idée de placer des DLL dans C:\Program Files (x86)\Embarcadero\Studio\20.0\bin; son emplacement c'est soit dans C:\Windows\SysWOW64, soit dans un répertoire quelconque ajouté au PATH
    Developpez.com: Mes articles, forum FlashPascal
    Entreprise: Execute SARL
    Le Store Excute Store

  9. #9
    Membre expérimenté Avatar de franckcl
    Homme Profil pro
    Developpeur Delphi
    Inscrit en
    Septembre 2004
    Messages
    516
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Developpeur Delphi
    Secteur : High Tech - Électronique et micro-électronique

    Informations forums :
    Inscription : Septembre 2004
    Messages : 516
    Par défaut
    Citation Envoyé par Paul TOTH Voir le message
    en même temps si tu lisais les réponses...
    Je n'ai rien à ajouter ;-)
    merci Paul.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/07/2007, 14h49
  2. Impossible de se connecter à une base de donnée
    Par patrice419 dans le forum ASP.NET
    Réponses: 4
    Dernier message: 26/04/2007, 12h41
  3. impossible de se connecter à une base postgre
    Par nicko27 dans le forum Access
    Réponses: 7
    Dernier message: 20/09/2006, 17h32
  4. [PEAR][DB] Impossible de me connecter à une base mssql
    Par VincenzoR dans le forum Bibliothèques et frameworks
    Réponses: 4
    Dernier message: 22/07/2006, 08h35
  5. [C++][Connexion] Impossible de se connecter à ma base
    Par Firestarter dans le forum PostgreSQL
    Réponses: 8
    Dernier message: 19/01/2006, 22h45

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