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 :

[MySQL / DBExpress] Paramétrage de TSQLConnexion


Sujet :

Bases de données Delphi

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2017
    Messages : 16
    Par défaut [MySQL / DBExpress] Paramétrage de TSQLConnexion
    Bonjour,

    J'aimerai gérer une BDD MySQL avec Delphi 10.2 Tokyo (version Entreprise).
    Pour ce faire, j'aimerai me connecter avec les composants dbExpress.

    Cependant, je suis bloqué : dans tous les tutoriels que j'ai pu trouver sur le net, aucun ne corresponds à ma situation...

    J'utilise la version 8.0 du driver ODBC pour me connecter à MySQL.
    Donc déjà, je ne sais pas quoi rentrer dans le paramètre "Driver" de l'objet TSQLConnexion : dois-je mettre ODBC ou MySQL ?

    De plus, si j’essaie de me connecter en cliquant sur TSQLConnexion.connected en ayant rentré les bons paramètres avec :
    - ODBC, j'obtiens "[Microsoft][Gestionnaire de pilotes ODBC] Connexion non ouverte."
    - MySQL, j'obtiens "Erreur DBX : Le pilote n'a pas été correctement initialisé. La bibliothèque client est manquante, n'est pas installée correctement, sa version est incorrecte ou le pilote n'est pas dans le chemin système..."

    Il faut savoir que je connecte habituellement avec le code suivant :
    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
    procedure TGestBDD.ConnectMySQL;
    begin
         with FCnx do
         begin
              if (Connected = False) or (MinutesBetween(Now, FdtLastCnx) > 15) then
              begin
                   Close;
                   // Chaine de connection
                   KeepConnection   := true;
                   Mode             := cmReadWrite;
                   ConnectionString := FCnxStr;
                   FdtLastCnx       := Now;
                   Open;
              end;
         end;
    end;
    Avec FCnx : un objet TADOConnection.

    Inutile de vous dire que cela fonctionne parfaitement (du moment que la chaîne de connexion est correctement paramétrée).

    Concrètement :
    J'ai la version Entreprise de Delphi Tokyo, dois-je installer un package dbExpress particulier ou bien un driver ?
    Ou est-ce que tout est déjà pré-installer ?
    Si non, comment installer les drivers pour MySQL via ODBC 8.0 ?
    Enfin, comment paramétrer l'objet TSQLConnexion ?

    Je vous remercie par avance du temps que vous consacrerez à ma demande.
    Bien cordialement,
    William Durand.

  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
    Bonjour William

    Avec la version Entreprise de Tokyo tu ne devrais pas avoir de problème pour accéder à MySQL avec FireDAC. concernant dbExpress ça devrait passer aussi si tu as la bonne DLL accessible en utilisant le driver "MySQL".

    Si tu préfères passer par ODBC, as-tu configuré une connexion au niveau de Windows ? Dans ce cas c'est ce nom de connexion que tu dois utiliser dans TSQLConnection.

  3. #3
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 671
    Billets dans le blog
    65
    Par défaut
    Bonjour,

    Avec la version entreprise, selon ma petite expérience avec MySQL et Tokyo ça passe sans problème avec Firedac bien sûr mais aussi avec DBExpress .
    Je n'ai malheureusement plus accès à ces "expériences" suite au crash "parisien" de mon PC mais j'ai rapidement trouvé ce code dans une doc TMSSoftware
    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
    17
    18
        ConnFactory := TDBConnectionFactory.Create(
          function: IDBConnection
          var
            SqlConn: TSQLConnection;
          begin
            SqlConn := TSQLConnection.Create(nil);
            SqlConn.DriverName := 'MySQL';
            SqlConn.GetDriverFunc := 'getSQLDriverMySQL';
            SqlConn.VendorLib := 'libmysql.dll';
            SqlConn.LibraryName := 'dbxmys.dll';
            SqlConn.Params.Values['HostName'] := 'dbserver';
            SqlConn.Params.Values['Database'] := 'xdata';
            SqlConn.Params.Values['User_Name'] := 'user';
            SqlConn.Params.Values['Password'] := 'mysql';
            SqlConn.LoginPrompt := false;
            Result := TDBExpressConnectionAdapter.Create(SqlConn, true);
          end
        );
    Meilleurs vœux pour 2019

    PS. éviter de rajouter encore une couche avec ADO

  4. #4
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2017
    Messages : 16
    Par défaut Pas de solution mais plus de problème
    Bonjour et merci pour ces réponses rapides en ce début d'année 2019.
    De ce fait : Bonne année à tous !

    Au sujet de mon problème de connexion, je vais abandonner.
    C'est plus pratique pour mon équipe et moi de continuer à travailler avec ADO.

    Mais j'ai fais quelque recherche de mon côté sur FireDAC et j'ai tenté de créer une connexion MySQL.
    Résultat : il manque les fichiers libmysql.dll ou libmysqld.dll.
    Je pense que c'est bien l'absence de la bonne DLL qui me bloquait avec FireDAC ou dbExpress.

    J'ai trouvé ces deux fichier en 64 et en 32bit et je les ai placé dans le répertoire de travaille de mon application.
    Cela ne fonctionne toujours pas...
    Je dois surement avoir oublié quelque chose mais ce n'est pas un souci : je ne vais pas perdre plus de temps avec FireDAC ou dbExpress.

    Je vous remercie encore pour vos réponses et vous souhaite une très bonne journée.
    Cordialement, William Durand.

  5. #5
    Rédacteur/Modérateur

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

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 15 671
    Billets dans le blog
    65
    Par défaut
    Re,

    ne serait-ce point un problème de bits ? pour Delphi il faut que les dlls soient en 32 bits donc une installation de MySQL en 32 bits.
    Je viens de me faire piéger en installant justement uniquement la version 64 bits !
    Ce n'est pas tant une copie de la bibliothèque dans le répertoire de l'application mais dans Syswow64 (pour la dll 32 bits) qu'il faut vérifier

  6. #6
    Membre averti
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Octobre 2017
    Messages
    16
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 33
    Localisation : France, Rhône (Rhône Alpes)

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

    Informations forums :
    Inscription : Octobre 2017
    Messages : 16
    Par défaut Exactement !
    Oui, il me semble que c'est cela.

    J'ai mysql en 64 donc ça ne peut fonctionner.
    Il faudrait que je ré-installe MySQL en 32 pour que les DLL soit prise en compte par FireDAC ou dbExpress.
    Je ne vais pas tenté par manque de temps mais c'est pratiquement sûr que c'est la solution.

    Bien cordialement, WD

    PS : je le saurais pour le répertoire Syswow64. Merci pour l'info !

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

Discussions similaires

  1. [Mysql] Dbexpress, ADO ?
    Par rvzip64 dans le forum Bases de données
    Réponses: 8
    Dernier message: 18/09/2007, 14h32
  2. Delphi 2007 et Mysql [dbexpress]
    Par rvzip64 dans le forum Delphi
    Réponses: 8
    Dernier message: 11/06/2007, 22h16
  3. MySQL DBExpress vs MySQL.pas
    Par thierrybatlle dans le forum Bases de données
    Réponses: 1
    Dernier message: 07/06/2006, 09h28
  4. Delphi 7/ MySQL / DBExpress
    Par yvescollet dans le forum Bases de données
    Réponses: 13
    Dernier message: 16/07/2004, 23h12
  5. [MySQL][DbExpress][D7] clientdataset.applyupdates
    Par nanomag dans le forum Bases de données
    Réponses: 2
    Dernier message: 17/06/2004, 16h48

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