Page principale | Liste alphabétique | Liste des classes | Liste des fichiers | Membres de classe | Membres de fichier | Pages associées

MySQL.h

Aller à la documentation de ce fichier.
00001 /*! \file MySQL.h
00002     \brief Gestion base de MySQL.
00003 
00004     Gestionnaire de base de données MySQL. \n
00005 
00006     \author     aerith (www.aerith.fr)
00007     \version    1.0
00008     \date       01/11/2007
00009 */
00010 
00011 #ifndef INCLUDE_RSRC_MYSQL
00012 #define INCLUDE_RSRC_MYSQL
00013 
00014 #include    "../../mysql/mysql.h"
00015 #include    "../Surcouche/SurcoucheMultitache.h"
00016 #include    "../Error/Error.h"
00017 #include    <vector>
00018 
00019 #define     MYSQL_HOST      256
00020 #define     MYSQL_USER      32
00021 #define     MYSQL_PASS      32
00022 #define     MYSQL_BASE      32
00023 #define     MYSQL_BUFFER    10240
00024 
00025 //! Gestion base MySQL.
00026 /*! Gestionnaire de base de données MySQL.
00027 */
00028 class MySQL
00029 {
00030 private :
00031     char                    Host[MYSQL_HOST];   /*!< Serveur où ce trouve la base.                      */
00032     int                     Port;               /*!< Port utilisé par le serveur où ce trouve la base.  */
00033     char                    User[MYSQL_USER];   /*!< User pour ce connexter à la base.                  */
00034     char                    Pass[MYSQL_PASS];   /*!< Password pour ce connecter à la base.              */
00035     char                    Name[MYSQL_BASE];   /*!< Nom de la base sur le serveur.                     */
00036     MYSQL                   Base;               /*!< Manipulateur de la base mysql.                     */
00037     int                     Connected;          /*!< 1 si connecter, 0 sinon.                           */
00038     std::vector<MYSQL_ROW>  Datas;              /*!< Chaque lignes est une entrée.                      */
00039     static int              MySQLInstance;      /*!< Compte les instance de la class.                   */
00040     static MUTEX            MySQLMutex;         /*!< Utiliser des que l'on accede au fichier "DB.sys".  */
00041 
00042     //! Affiche une erreur mysql.
00043     /*! Affiche le détail d'une erreur mysql.
00044     */
00045     inline void MySQLError()
00046     {
00047         printf("MYSQL error %i : %s\n", mysql_errno(&Base), mysql_error(&Base));
00048     };
00049 
00050     //! Enregistre les données dans un tableau.
00051     /*! Enregistre les données d'une requette mysql dans un tableau dynamique.
00052     */
00053     int     SaveResult();
00054 
00055 public  :
00056     /*! Charge la base en mémoire.
00057         \param pHost serveur où ce trouve la base.
00058         \param pUser user pour ce connexter à la base.
00059         \param pPass password pour ce connecter à la base.
00060         \param pBase nom de la base sur le serveur.
00061         \param iPort port utilisé par le serveur où ce trouve la base.
00062     */
00063     MySQL(char *pHost, char *pUser, char *pPass, char *pBase, int iPort = 0);
00064 
00065     /*! Libere proprement la mémoire, ne sauve pas la base dans les fichiers.
00066         \sa SaveBase().
00067     */
00068     ~MySQL();
00069 
00070     //! Se connecte à la base.
00071     /*! Se connecte à la base mysql.
00072         \return Code d'erreur.
00073         \sa Close().
00074     */
00075     int     Open();
00076 
00077     //! Se déconnecte de la base.
00078     /*! Se déconnecte de la base mysql.
00079         \return Code d'erreur.
00080         \sa Open().
00081     */
00082     int     Close();
00083 
00084     //! Envoie une requette.
00085     /*! Envoie une requette au serveur.
00086         \param pQuery requette au format printf
00087         \return Code d'erreur.
00088     */
00089     int     Query(char *pQuery, ...);
00090 
00091     //! Envoie une requette.
00092     /*! Envoie une requette binaire au serveur.
00093         \param pQuery requette
00094         \param iSize longeur de la requette
00095         \return Code d'erreur.
00096     */
00097     int     QueryBin(char *pQuery, int iSize);
00098 
00099     //! Retourne le nombre d'entrée.
00100     /*! Retourne le nombre d'entrée dans \a Datas.
00101         \return nombre d'entrée.
00102     */
00103     inline MYSQL_ROW    GetData(int iNo)
00104     {
00105         if(iNo < Datas.size())
00106             return Datas[iNo];
00107     };
00108 
00109     //! Retourne le nombre d'entrée.
00110     /*! Retourne le nombre d'entrée dans \a Datas.
00111         \return nombre d'entrée.
00112     */
00113     inline int      GetNbData()
00114     {
00115         return Datas.size();
00116     };
00117 
00118     //! Retourne le nombre d'instance.
00119     /*! Retourne le nombre d'instance de la class (pour multitache).
00120         \return nombre d'instance de la class.
00121     */
00122     inline int      GetNbInstance()
00123     {
00124         return MySQLInstance;
00125     };
00126 
00127     //! Retourne le nom de la base.
00128     /*! Retourne le nom \a Name de la base.
00129         \return pointeur sur \a Name.
00130     */
00131     inline char     *GetBaseName()
00132     {
00133         return Name;
00134     };
00135 };
00136 
00137 #endif
00138 

Généré le Thu Jun 12 09:12:30 2008 pour A.I.F. par  doxygen 1.3.9.1