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

C++ Discussion :

[débutant] Récupérer résultats mysql, via dll dynamique


Sujet :

C++

  1. #1
    Membre confirmé
    Inscrit en
    Février 2006
    Messages
    102
    Détails du profil
    Informations forums :
    Inscription : Février 2006
    Messages : 102
    Par défaut [débutant] Récupérer résultats mysql, via dll dynamique



    Voici mon programme essayant de se connecter à une base de données MySQL 5.0 via la bibliothèque 'libMySql.dll'. J'ai aussi un fichier libmysql.def mais je ne sais pas quoi en faire. Dans ce fichier def y'a, d'après moi, le nom des fonctions de la dll, mais sans leurs paramètres.

    Dans le fichier mysql.h, y'a les mêmes fonctions, alors je suppose qu'il s'agit des mêmes paramètres, et en même temps je récupère les différentes structures. C'est pas hyper propre mais faut bien que j'essaye d'avancer !

    Voilà le code :

    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
    #include <iostream>
    #include <windows.h>
    #include "C:\\Program Files\\MySQL\\MySQL Server 5.0\\include\\mysql.h"
     
     
    int main()
    {
     
        MYSQL *hsql;
        MYSQL_RES *hsql_res;
        MYSQL_ROW hsql_row;
    	HINSTANCE DLLHandle;
     
        // PROTOTYPES :
        // mysql_real_connect
    	typedef void (*PtrFunction_MRC)(MYSQL *mysql,
                                        const char *host,
                                        const char *user,
                                        const char *passwd,
                                        const char *db,
                                        unsigned int port
                                        );
        PtrFunction_MRC Ptr_MRC;
        // mysql_query
        typedef int (*PtrFunction_MQ)(MYSQL *mysql,
                                        const char *q
                                        );
        PtrFunction_MQ Ptr_MQ;
        // mysql_use_result
        typedef MYSQL_RES* (*PtrFunction_MUR)(MYSQL *mysql);
        PtrFunction_MUR Ptr_MUR;
        // mysql_fetch_row
        typedef MYSQL_ROW (*PtrFunction_MFR)(MYSQL_RES *result);
        PtrFunction_MFR Ptr_MFR;
     
        DLLHandle = LoadLibrary("C:\\Program Files\\MySQL\\MySQL Server 5.0\\lib\\opt\\libmySQL.dll");
     
     
        // Connection
        Ptr_MRC = (PtrFunction_MRC)GetProcAddress(DLLHandle,"mysql_real_connect");
        Ptr_MRC(hsql,"localhost","root","mysqlroot","test",3306);
     
        // Query
        Ptr_MQ = (PtrFunction_MQ)GetProcAddress(DLLHandle,"mysql_query");
        Ptr_MQ(hsql,"SELECT * FROM myTable");
     
        // Query Use Result
        Ptr_MUR = (PtrFunction_MUR)GetProcAddress(DLLHandle,"mysql_use_result");
        hsql_res = Ptr_MUR(hsql);
     
        // Query fetch first row
        Ptr_MFR = (PtrFunction_MFR)GetProcAddress(DLLHandle,"mysql_fetch_row");
        hsql_row = Ptr_MFR(hsql_res);
     
        std::cout << hsql_row;
     
    	return 0;
    }
    J'utilise code::block et je suis sous Windows XP.
    Lors que je veux lire une ligne de résultat, rien ne s'affiche... pourquoi ? La compilation se passe sans soucis. Le programme termine à 1 donc doit y avoir un blem quelque part ?

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Executing: C:\Program Files\CodeBlocks/console_runner.exe "D:\Documents\cousin_g\CodeBlockProjects\mysql_1\console.exe"  (in .)
    Process terminated with status 1 (0 minutes, 1 seconds)
    0 errors, 0 warnings
    Merci de votre aide

  2. #2
    Membre expérimenté Avatar de Rupella
    Inscrit en
    Février 2005
    Messages
    286
    Détails du profil
    Informations forums :
    Inscription : Février 2005
    Messages : 286
    Par défaut
    pour te simplifier l'écriture et la compréhension du code, il existe normalement, en meme temps que le .def, .h et .dll, un autre fichier libmysql.lib qui te permet de faire le link avec ton projet sans avoir a t'embeter d'utiliser les .dll...

Discussions similaires

  1. [Word] Récupérer résultat Mysql pour créer un document word
    Par fat dans le forum Bibliothèques et frameworks
    Réponses: 1
    Dernier message: 07/06/2007, 16h59
  2. [MySQL] Récupérer résultat requête tableau
    Par Invité dans le forum JDBC
    Réponses: 2
    Dernier message: 03/05/2006, 08h22
  3. Réponses: 5
    Dernier message: 16/02/2006, 16h06
  4. Réponses: 5
    Dernier message: 30/06/2005, 10h28
  5. Réponses: 7
    Dernier message: 30/06/2005, 10h06

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