1. #1
    Membre régulier
    Homme Profil pro
    Second de cuisine
    Inscrit en
    avril 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : avril 2005
    Messages : 193
    Points : 72
    Points
    72

    Par défaut MySQL++ et ses SSQLS !

    Bonjour.

    J'essaye de definir toutes mes tables mysql en tant que structures, avec les macros ssqls.
    Sans oublier de lire la faq: http://tangentsoft.net/mysql++/doc/h...sqls-in-header

    Voici ce que j'ai:

    DatabaseStocks.h
    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
    #ifndef DBSTOCK
    #define DBSTOCK
     
     
    #if !defined(EXPAND_MY_SSQLS_STATICS)
    #define MYSQLPP_SSQLS_NO_STATICS
    #endif
     
    #include <mysql++/ssqls.h>
     
    sql_create_6(ServersStock,
    	1, 6,
    	mysqlpp::sql_char, linkname,
    	mysqlpp::sql_char, realname,
    	mysqlpp::sql_bool, master,
    	mysqlpp::sql_int, port,
    	mysqlpp::sql_int, maxclients,
    	mysqlpp::sql_float, version)
    /// Server links stock
    sql_create_7(ServerLinksStock,
        1, 7,
    	mysqlpp::sql_char, server,
    	mysqlpp::sql_bool, type,
    	mysqlpp::sql_char, targetname,
    	mysqlpp::sql_char, id,
    	mysqlpp::sql_char, password,
    	mysqlpp::sql_char, ip,
    	mysqlpp::sql_int, port)
     
     
    #endif
    DatabaseStocks.cpp
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    #define EXPAND_MY_SSQLS_STATICS
    #include "DatabaseStocks.h"

    Et maintenant, j'ai besoin de ces structures dans Database.cpp:
    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
    #include "Database.h"
    #include "DatabaseStocks.h"
     
     
    Database::Database()
    {
    	if (!dblink.connect(db_name, db_host,
    			db_user, db_pass))
        {
            cout << "Could not connect to MySQL ! (Error: " << dblink.error() << ")" << endl;
            exit(1);
        }
        mysqlpp::Query query = dblink.query(Format(strlen(ServerName), "SELECT * FROM `servers` WHERE linkname ='%s'", ServerName));
        if(query.affected_rows() != 1)
        {
            cout << "Could not read server configuration" << endl;
        }
        vector<ServersStock> srvstck;
        query.storein(srvstck);
        cout << srvstck.realname << endl;
    }
    Et voici ce que code::blocks me dit:
    c:\program files (x86)\codeblocks\mingw\bin\..\lib\gcc\mingw32\4.4.1\..\..\..\..\include\mysql++\ssqls.h|44|error: expected ',' or '...' before '&' token|
    (post édité !)

  2. #2
    Membre Expert
    Avatar de supersnail
    Homme Profil pro
    Inscrit en
    novembre 2006
    Messages
    1 522
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : novembre 2006
    Messages : 1 522
    Points : 2 115
    Points
    2 115

    Par défaut

    Bonjour,

    Je crois que ton problème se résume a une bête faute de frappe

    Tu définies un type ServersStock, pour utiliser un ServerStock ^^.

    Sinon pense à contrôler le contenu de ta variable ServerName pour limiter les risques de SQL injection (ou encore mieux, utiliser des requêtes préparées si ta bibliothèque le permet)
    Toute question technique envoyée en MP ira directement à la poubelle

    Un code ne marchera jamais,il n'a jamais reçu la capacité de se déplacer.
    Inutile donc de dire "ça marche pas", donnez plûtot des informations précises afin de mieux pouvoir vous aider.


    Grand gourou de la -attitude

  3. #3
    Membre régulier
    Homme Profil pro
    Second de cuisine
    Inscrit en
    avril 2005
    Messages
    193
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Second de cuisine
    Secteur : Alimentation

    Informations forums :
    Inscription : avril 2005
    Messages : 193
    Points : 72
    Points
    72

    Par défaut

    Assez con en effet...MAis meme avec cette modif. J'ai une erreur :o (cf, premier post)

  4. #4
    Responsable 2D/3D/Jeux


    Avatar de LittleWhite
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    mai 2008
    Messages
    18 386
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : mai 2008
    Messages : 18 386
    Points : 107 587
    Points
    107 587
    Billets dans le blog
    3

    Par défaut

    Bonjour,

    J'aimerai connaitre ce qui se trouve à la ligne 44 de l'entête qui plante.

    Sinon, je tente un truc idiot :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    #ifndef DBSTOCK
    #define DBSTOCK
     
     
    #if !defined(EXPAND_MY_SSQLS_STATICS)
    #define MYSQLPP_SSQLS_NO_STATICS
    #endif
     
    #include <mysql++/ssqls.h>
    A changé pour avoir :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    #ifndef DBSTOCK
    #define DBSTOCK
     
    #include <mysql++/ssqls.h>
     
    #if !defined(EXPAND_MY_SSQLS_STATICS)
    #define MYSQLPP_SSQLS_NO_STATICS
    #endif
    Vous souhaitez participer à la rubrique 2D / 3D / Jeux ? Contactez-moi
    La rubrique a aussi un blog !

    Ma page sur DVP
    Mon Portfolio

    Qui connaît l'erreur, connaît la solution.

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