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 :

pb avec le fichier libmysql.dll


Sujet :

Bases de données Delphi

  1. #1
    Membre habitué Avatar de hammag
    Profil pro
    Inscrit en
    Février 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 511
    Points : 145
    Points
    145
    Par défaut pb avec le fichier libmysql.dll
    salut,

    Je voudrais effectuer une connxion avec une BD MySQL dans mon pgme delphi via dbExpress, mais j'ai toujours le pb de "unable to load libmysql.dl".
    Ce fichier existe dans le répertoire bin de MySQL, mais je ne sais pas comment faire pour résoudre mon pb dans delphi .


    cdt

  2. #2
    Expert éminent sénior
    Avatar de ShaiLeTroll
    Homme Profil pro
    Développeur C++\Delphi
    Inscrit en
    Juillet 2006
    Messages
    13 447
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Seine Saint Denis (Île de France)

    Informations professionnelles :
    Activité : Développeur C++\Delphi
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2006
    Messages : 13 447
    Points : 24 846
    Points
    24 846
    Par défaut
    Peut-être ajoute ce répertoire dans la Path Windows ?
    ou mettre la DLL dans le répertoire ?

    tient, j'ai fait cela pour tester la connexion à un serveur MySQL 4, je n'ai pas testé sur le 5, regarde si tu as tout pareil, sinon utilise-tu l'unite "MySQL.pas" traduite à partir du Header C ?

    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
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    // -----------------------------------------------------------------------------
    class function TepcConfigController.CheckMySQL(const Host, User, PassWord: string; DoClearReport: Boolean = True): Integer;
    const
      MY_SQL_LIB = 'libmySQL.UNLOAD.dll';
    var
       MySQLLibHandle: THandle;
       _mysql_init: function(Connexion: Pointer): Pointer; stdcall;
       _mysql_close: procedure(Connexion: Pointer); stdcall;
       _mysql_ping: function(Connexion: Pointer): longint; stdcall;
       _mysql_errno: function(Connexion: Pointer): longword; stdcall;
       _mysql_error: function(Connexion: Pointer): pChar; stdcall;
       _mysql_real_connect: function(Connexion: Pointer; const host, user, passwd, db: pChar; port: longword; const unix_socket: pChar; clientflag: longword): Pointer; stdcall;
    var
      Connexion: Pointer;
    begin
      Result := 0;
      if DoClearReport then
        _CCReport.Clear();
     
      MySQLLibHandle := LoadLibrary(MY_SQL_LIB);
      if MySQLLibHandle > 0 then
      begin
        try
          @_mysql_init := GetProcAddress(MySQLLibHandle, 'mysql_init');
          @_mysql_close := GetProcAddress(MySQLLibHandle, 'mysql_close');
          @_mysql_ping := GetProcAddress(MySQLLibHandle, 'mysql_ping');
          @_mysql_errno := GetProcAddress(MySQLLibHandle, 'mysql_errno');
          @_mysql_error := GetProcAddress(MySQLLibHandle, 'mysql_error');
          @_mysql_real_connect := GetProcAddress(MySQLLibHandle, 'mysql_real_connect');
          if Assigned(@_mysql_init) and Assigned(@_mysql_close) and Assigned(@_mysql_ping) and Assigned(@_mysql_errno) and Assigned(@_mysql_error) and Assigned(@_mysql_real_connect) then
          begin
            try
              Connexion := _mysql_init(nil);
            except
              Inc(Result);
              _CCReport.AddError('MySQL', 'Librarie MySQL non Initialisée !');
              Exit;
            end;
            if not Assigned(Connexion) then
            begin
              Inc(Result);
              _CCReport.AddError('MySQL', 'Connexion non Initialisée');
              Exit;
            end;
            try
              if not Assigned(_mysql_real_connect(Connexion, PChar(Host), PChar(User), PChar(PassWord), nil, 0, nil, 0)) then
              begin
                Inc(Result);
                _CCReport.AddError('MySQL', Format('Echec de la Connexion sur %s : %d - %s ', [Host, _mysql_errno(Connexion), _mysql_error(Connexion)]));
                Exit;
              end;
     
              if _mysql_ping(Connexion) = 0 then
                _CCReport.AddInfo('MySQL',  Format('Serveur MySQL [%s] : Succès du Ping !', [Host]))
              else begin
                Inc(Result);
                _CCReport.AddError('MySQL', Format('Le Ping sur le Serveur MySQL [%s] a échoué !', [Host]));
              end;
            finally
              _mysql_close(Connexion);
            end;
          end;
         finally
           FreeLibrary(MySQLLibHandle)
         end;
       end else
       begin
         Inc(Result);
         _CCReport.AddInfo('MySQL', Format('Impossible de Charger "%s"', [MY_SQL_LIB]));
       end;
    end;
    Aide via F1 - FAQ - Guide du développeur Delphi devant un problème - Pensez-y !
    Attention Troll Méchant !
    "Quand un homme a faim, mieux vaut lui apprendre à pêcher que de lui donner un poisson" Confucius
    Mieux vaut se taire et paraître idiot, Que l'ouvrir et de le confirmer !
    L'ignorance n'excuse pas la médiocrité !

    L'expérience, c'est le nom que chacun donne à ses erreurs. (Oscar Wilde)
    Il faut avoir le courage de se tromper et d'apprendre de ses erreurs

  3. #3
    Membre habitué Avatar de hammag
    Profil pro
    Inscrit en
    Février 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 511
    Points : 145
    Points
    145
    Par défaut
    j'ai mis le fichier libmysql.dll dans le repértoire de mon projet, mais toujours le même problème !!!

  4. #4
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par hammag
    j'ai mis le fichier libmysql.dll dans le repértoire de mon projet, mais toujours le même problème !!!
    Ce n'est pas dans le répertoire du projet mais dans le répertoire de l'executable qu'il faut le mettre (Petite précision au cas où tu rediriges la génération de l'exécutable dans un répertoire différent du projet)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  5. #5
    Membre habitué Avatar de hammag
    Profil pro
    Inscrit en
    Février 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 511
    Points : 145
    Points
    145
    Par défaut
    mais actuellement je travaile dans l'environnement Delphi, et donc je lance l'exécution à partir de cette environnement.

  6. #6
    Modérateur
    Avatar de Rayek
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Mars 2005
    Messages
    5 235
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Haute Savoie (Rhône Alpes)

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

    Informations forums :
    Inscription : Mars 2005
    Messages : 5 235
    Points : 8 504
    Points
    8 504
    Par défaut
    Citation Envoyé par hammag
    mais actuellement je travaile dans l'environnement Delphi, et donc je lance l'exécution à partir de cette environnement.
    L'executable généré est il dasn le répertoire du projet ? (Dans delphi en passant par F9 ou non, il faut que la dll soit dans le répertoire où il y a l'executable)
    Modérateur Delphi

    Le guide du bon forumeur :
    __________
    Rayek World : Youtube Facebook

  7. #7
    Membre habitué Avatar de hammag
    Profil pro
    Inscrit en
    Février 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 511
    Points : 145
    Points
    145
    Par défaut
    salut,

    l'exécutable est dans le repértoire du proget, mais j'ai autre indice :
    en fait si je dépose un composant TSQLConnection et j'effectue le test de connexion vers la BD MySQL via ce composant, la réponse est
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Failure to connect:unabble to Find Procedure getSQLDriverMYSQL

  8. #8
    Expert confirmé
    Avatar de Sub0
    Homme Profil pro
    Développeur Web
    Inscrit en
    Décembre 2002
    Messages
    3 573
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51

    Informations professionnelles :
    Activité : Développeur Web

    Informations forums :
    Inscription : Décembre 2002
    Messages : 3 573
    Points : 4 219
    Points
    4 219
    Par défaut
    Es-tu sûr que ton hébergeur autorise l'accès direct aux bdd ?
    parce-que j'ai eu le problème et je l'ai contourné en utilisant des scripts PHP commandé par delphi via un accès http ou https.
    De retour parmis vous après 10 ans!!

  9. #9
    Membre habitué Avatar de hammag
    Profil pro
    Inscrit en
    Février 2006
    Messages
    511
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2006
    Messages : 511
    Points : 145
    Points
    145
    Par défaut
    bonjour,

    c'est une base de données locale (sur mon pc)

Discussions similaires

  1. Problème avec le fichier MO21Legend.dll
    Par Subkill dans le forum Windows
    Réponses: 2
    Dernier message: 21/01/2009, 17h09
  2. Génération DLL avec 2 fichiers .lib
    Par JeanPhi dans le forum MFC
    Réponses: 7
    Dernier message: 27/08/2007, 12h02
  3. Réponses: 3
    Dernier message: 11/01/2007, 21h18
  4. [vb.net]Problème avec des fichiers DLL
    Par nakata77 dans le forum VB.NET
    Réponses: 1
    Dernier message: 20/09/2006, 18h40
  5. Probleme avec les fichier openGL32.dll et glu32.dll
    Par gazzall17 dans le forum OpenGL
    Réponses: 4
    Dernier message: 16/03/2006, 12h10

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