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 :

Requête SQL avec champs variable


Sujet :

C++

  1. #1
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut Requête SQL avec champs variable
    Bonjour à tous,

    Voila, je me connecte à une base access avec la langage C++. J'effectue ensuite une requete SQL don voici le code:

    rc=SQLselect(hStmt,"select from*base CODNIV values ("00684")");

    Je souhaiterai personnaliser ma requête en rendant le champs 00684 variable, c'est a dire saisi par l'utilisateur, et ensuite executer ma requête en fonction de ce champs.

    Merci d'avance

    YDU

  2. #2
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bonjour et bienvenu,
    Ne peux-tu pas simplement concaténer ta chaîne de requête avec l'entrée utilisateur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    std::string user_req(???);
    std::string requete("SELECT * FROM base WHERE CODNIV =");
    requete += "\"" + user_req + "\""
    rc=SQLselect(hStmt,requete.c_str());

  3. #3
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Salut Archi, merci pour ton hospitalité.

    J'ai de toute petite notion de C et j'ai du mal à saisir ton petit bout de code.

    En effet j'aurai souhaité passé par un printf. voici ce que je pensais faire:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    printf("merci de renseigné le CODNIV que vous souhaitez analyser:\n");
    scanf("%s",ma_var);
    merci d'avance

    YDU

  4. #4
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    - En C++, tu te faciliteras la vie à utiliser les flux en lieu et place des printf/scanf.
    Commence par jeter un coup d'oeil à la FAQ consacrée au sujet :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    std::string user_req;
    std::cout<<"merci de renseigné le CODNIV que vous souhaitez analyser:"<<std::endl;
    if(std::cin>>user_req){
     
       std::string requete("SELECT * FROM base WHERE CODNIV =");
       requete += "\"" + user_req + "\"";
     
       rc=SQLselect(hStmt,requete.c_str());
    }
    else{
       std::cout<<"erreur"<<std::endl;
    }

  5. #5
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Euh .... je pense que je mélange C et C++. En effet le compilateur ne semble pas comprende std::

    En attendant je vais consulter la FAQ que tu m'as conseillé


    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
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    /* Connexion et execution de requete sur un base de donnees Microsoft Access */
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <sql.h>
    #include <sqlext.h>
    #include <string.h>
     
    #pragma comment(lib, "odbc32.lib")
     
    int main(int argc, char *argv[])
    {
     
     
     
        HENV hEnv;
        HDBC hDbc;
        RETCODE rc;
     
        int iOut;
        char strOut[256];
        char szDSN[256] = "driver={Microsoft Access Driver (*.mdb)};dbq=[ydu.mdb];";
     
        /* char szSql[256] = "SELECT * FROM base"; */
        /* char szSql[256] = "SELECT * FROM base WHERE CODNIV='00684'"; */
     
        std::string user_req;
        std::cout<<"Merci de renseigner sur 5 caractères le groupe que vous souhaitez analyser:"<<std::endl;
     
        if (std::cin>>user_req)
           {
                               std::string requete("SELECT * FROM base WHERE CODNIV =");
                               requete += "\"" + user_req + "\"";
     
                               rc=SQLselect(hSmt,requete.c_str());
                               }
        else
            {
                               std::count<<"Erreur"<<std::endl;
                               }
     
     
     
        /* char szSql[256] = "SELECT * FROM base WHERE CODNIV='00684' and CODPRD='01.006'"; */
     
        int ret1;
        int ret2;
        int ret3;
        int ret4;
        int ret5;
     
        char CODNIV[128];
        char TYPNIV[128];
        char CODPRD[128];
        int PRODC;
        int OBJANNEE;
     
        /* 1 - Connexion a la BDD Access */
        rc = SQLAllocEnv(&hEnv);
        rc = SQLAllocConnect(hEnv, &hDbc);
        rc = SQLDriverConnect(hDbc, NULL, (unsigned char*)szDSN, SQL_NTS, (unsigned char*)strOut, 255, (SQLSMALLINT*)&iOut, SQL_DRIVER_NOPROMPT);
     
     
        /* 2 - Preparation de la requete */
        HSTMT hStmt;
        rc = SQLAllocStmt(hDbc,&hStmt);
        rc = SQLPrepare(hStmt,(unsigned char*)szSql, SQL_NTS);
     
     
        /* 3 - Execution de la requete (Apres avoir binder les champs de resultats) */
        /* rc = SQLBindCol(hStmt, tab_column, tr_type, tr_value, tr_len, len_or_ind); */
        rc = SQLBindCol(hStmt, 1, SQL_C_CHAR, CODNIV, 128, (SQLINTEGER*)&ret1);
        rc = SQLBindCol(hStmt, 2, SQL_C_CHAR, TYPNIV, 128, (SQLINTEGER*)&ret2);
        rc = SQLBindCol(hStmt, 3, SQL_C_CHAR, CODPRD, 128, (SQLINTEGER*)&ret3);
        rc = SQLBindCol(hStmt, 4, SQL_C_ULONG, &PRODC, 4, (SQLINTEGER*)&ret4);
        rc = SQLBindCol(hStmt, 5, SQL_C_ULONG, &OBJANNEE, 4, (SQLINTEGER*)&ret5);
        rc = SQLExecute(hStmt);
     
        /* IMPORTANT : Pour les requetes du style DROP/CREATE/UPDATE... */
        /*Vous pouvez utiliser :  rc = SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS); */
     
        /* 4 - Boucle pour afficher les resultats */
        while(!(SQLFetch(hStmt) & 0xFFFE))
        {
        printf("{%s}{%s}{%s}{%i}{%i}\n",CODNIV, TYPNIV, CODPRD, PRODC, OBJANNEE);
        }
     
        /* 5 - Liberations et fermeture de la connection a la BDD */
        rc = SQLFreeStmt(hStmt, SQL_DROP);
        rc = SQLDisconnect(hDbc);
        rc = SQLFreeEnv(hEnv);
     
        getch();
     
        return 0;
    }

  6. #6
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Il te manque les en-têtes :
    pour les chaines de caractère (std::string)
    et
    pour les flux (std::cin, std::cout).

    Un conseil : remplace tes char toto[256] par des std::string toto. std::string est faite pour gérer les chaînes de caractères.

  7. #7
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    J'ai jetter un coupe d'oeil sur la FAQ, bravo super clair et facilement accessible aux novices.

    je reviens ves toi au sujet des Entêtes.

    - #include <string>
    Cette ligne ne semble pas convenir à mon compilateur (Dev C++)

    J'ai pourtant bien dans le répertoire INCLUDE un fichier 'string' mais celui ci est appellé par #include <string.h>

    Dans le répertoire INCLUDE/C++ j'ai aussi un fichier 'string' (qui n'apparaît pas comme Header file). lorsque je fais #include <string> mon compilateur se met en erreur. J'ai essayé de mettre ce fichier à la racine de INCLUDE mais sans succès.

    Il en est de même pour IOSTREAM.


    Merci.

    YDU

  8. #8
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Bizarre.
    Dans Dev-Cpp\include\ tu dois avoir un répertoire 'c++' ?
    Sinon, es-tu obligé d'utiliser Dev-cpp. Je crois qu'il n'est plus maintenu et qu'on recommande de passer par Code::block + mingw ou Visual Express.

  9. #9
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Oui, exact. j'ai bien le répertoire C++

  10. #10
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    ARCHI, j'ai suivi tes recommandations.

    Je suis passé sous Code::Blocks.

    Par contre lorsque je tente de compiler. Voici le message que je rencontre:

    "access - default" uses an invalid compiler. Skipping ...
    Nothing to be done.

    Merci d'avance pour tes lumieres.

    YDU

  11. #11
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    1/ Menu Settings/Compiler and debugger, dans la boîte de dialogue tout en haut, il y a 'selected compiler'. Tu choisis ton compilateur et dans l'onglet toolchain executables, tu prend auto-detect. S'il n'arrive pas, il faudra le chemin complet à la main.
    2/ Dans ton projet, le menu 'Build Options', dans la boîte de dialogue, tout en haut, il y a 'Selected Compiler' et tu choisis le même.

  12. #12
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Bien vu ! le compilateur tourne et voici le résultat, pas beau à voir :-/

    -------------- Build: default in access ---------------

    Compiling: main.c
    C:\C-C++\main.c:7:18: string: No such file or directory
    C:\C-C++\main.c:8:20: iostream: No such file or directory
    C:\C-C++\main.c: In function `main':
    C:\C-C++\main.c:27: error: syntax error before ':' token
    C:\C-C++\main.c:28: error: duplicate label `std'
    C:\C-C++\main.c:27: error: `std' previously defined here
    C:\C-C++\main.c:28: error: syntax error before ':' token
    C:\C-C++\main.c:30: error: `std' undeclared (first use in this function)
    C:\C-C++\main.c:30: error: (Each undeclared identifier is reported only once
    C:\C-C++\main.c:30: error: for each function it appears in.)
    C:\C-C++\main.c:30: error: syntax error before ':' token
    C:\C-C++\main.c:33: error: `requete' undeclared (first use in this function)
    C:\C-C++\main.c:33: error: `user_req' undeclared (first use in this function)
    C:\C-C++\main.c:35: error: `hSmt' undeclared (first use in this function)
    C:\C-C++\main.c: At top level:
    C:\C-C++\main.c:37: error: syntax error before "else"
    C:\C-C++\main.c:53: error: syntax error before ':' token
    C:\C-C++\main.c:61: error: `hEnv' undeclared here (not in a function)
    C:\C-C++\main.c:61: error: initializer element is not constant
    C:\C-C++\main.c:61: warning: data definition has no type or storage class
    C:\C-C++\main.c:62: error: redefinition of 'rc'
    C:\C-C++\main.c:61: error: previous definition of 'rc' was here
    C:\C-C++\main.c:62: error: `hDbc' undeclared here (not in a function)
    C:\C-C++\main.c:62: error: initializer element is not constant
    C:\C-C++\main.c:62: warning: data definition has no type or storage class
    C:\C-C++\main.c:63: error: redefinition of 'rc'
    C:\C-C++\main.c:62: error: previous definition of 'rc' was here
    C:\C-C++\main.c:63: error: redefinition of 'rc'
    C:\C-C++\main.c:62: error: previous definition of 'rc' was here
    C:\C-C++\main.c:63: error: `szDSN' undeclared here (not in a function)
    C:\C-C++\main.c:63: error: `strOut' undeclared here (not in a function)
    C:\C-C++\main.c:63: error: `iOut' undeclared here (not in a function)
    C:\C-C++\main.c:63: error: initializer element is not constant
    C:\C-C++\main.c:63: warning: data definition has no type or storage class
    C:\C-C++\main.c:68: error: redefinition of 'rc'
    C:\C-C++\main.c:63: error: previous definition of 'rc' was here
    C:\C-C++\main.c:68: error: redefinition of 'rc'
    C:\C-C++\main.c:62: error: previous definition of 'rc' was here
    C:\C-C++\main.c:68: error: initializer element is not constant
    C:\C-C++\main.c:68: warning: data definition has no type or storage class
    C:\C-C++\main.c:69: error: redefinition of 'rc'
    C:\C-C++\main.c:68: error: previous definition of 'rc' was here
    C:\C-C++\main.c:69: error: redefinition of 'rc'
    C:\C-C++\main.c:62: error: previous definition of 'rc' was here
    C:\C-C++\main.c:69: error: `szSql' undeclared here (not in a function)
    C:\C-C++\main.c:69: error: initializer element is not constant
    C:\C-C++\main.c:69: warning: data definition has no type or storage class
    C:\C-C++\main.c:74: error: redefinition of 'rc'
    C:\C-C++\main.c:69: error: previous definition of 'rc' was here
    C:\C-C++\main.c:74: error: redefinition of 'rc'
    C:\C-C++\main.c:62: error: previous definition of 'rc' was here
    C:\C-C++\main.c:74: error: `CODNIV' undeclared here (not in a function)
    C:\C-C++\main.c:74: error: initializer element is not constant
    C:\C-C++\main.c:74: warning: data definition has no type or storage class
    C:\C-C++\main.c:75: error: redefinition of 'rc'
    C:\C-C++\main.c:74: error: previous definition of 'rc' was here
    C:\C-C++\main.c:75: error: redefinition of 'rc'
    C:\C-C++\main.c:62: error: previous definition of 'rc' was here
    Process terminated with status 1 (0 minutes, 3 seconds)
    50 errors, 6 warnings

    ----------------------------------------------------------------------

    et voici mon 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
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    /* Connexion et execution de requete sur un base de donnees Microsoft Access */
    #include <stdio.h>
    #include <stdlib.h>
    #include <windows.h>
    #include <sql.h>
    #include <sqlext.h>
    #include <string>
    #include <iostream>
     
    #pragma comment(lib, "odbc32.lib")
     
    int main(int argc, char *argv[])
    {
     
     
        HENV hEnv;
        HDBC hDbc;
        RETCODE rc;
     
        int iOut;
        char strOut[256];
        char szDSN[256] = "driver={Microsoft Access Driver (*.mdb)};dbq=[ydu.mdb];";
     
        /* char szSql[256] = "SELECT * FROM base"; */
        /* char szSql[256] = "SELECT * FROM base WHERE CODNIV='00684'"; */
     
        std::string user_req;
        std::cout<<"Merci de renseigner sur 5 caractères le groupe que vous souhaitez analyser:"<<std::endl;
     
        if (std::cin>>user_req)
           {
                               std::string requete("SELECT * FROM base WHERE CODNIV =");
                               requete += "\"" + user_req + "\"";
     
                               rc=SQLselect(hSmt,requete.c_str());
                               }
        else
            {
                               std::count<<"Erreur"<<std::endl;
                               }
     
     
     
        /* char szSql[256] = "SELECT * FROM base WHERE CODNIV='00684' and CODPRD='01.006'"; */
     
        int ret1;
        int ret2;
        int ret3;
        int ret4;
        int ret5;
     
        /* char CODNIV[128]; */
        str::string CODNIV;
     
        char TYPNIV[128];
        char CODPRD[128];
        int PRODC;
        int OBJANNEE;
     
        /* 1 - Connexion a la BDD Access */
        rc = SQLAllocEnv(&hEnv);
        rc = SQLAllocConnect(hEnv, &hDbc);
        rc = SQLDriverConnect(hDbc, NULL, (unsigned char*)szDSN, SQL_NTS, (unsigned char*)strOut, 255, (SQLSMALLINT*)&iOut, SQL_DRIVER_NOPROMPT);
     
     
        /* 2 - Preparation de la requete */
        HSTMT hStmt;
        rc = SQLAllocStmt(hDbc,&hStmt);
        rc = SQLPrepare(hStmt,(unsigned char*)szSql, SQL_NTS);
     
     
        /* 3 - Execution de la requete (Apres avoir binder les champs de resultats) */
        /* rc = SQLBindCol(hStmt, tab_column, tr_type, tr_value, tr_len, len_or_ind); */
        rc = SQLBindCol(hStmt, 1, SQL_C_CHAR, CODNIV, 128, (SQLINTEGER*)&ret1);
        rc = SQLBindCol(hStmt, 2, SQL_C_CHAR, TYPNIV, 128, (SQLINTEGER*)&ret2);
        rc = SQLBindCol(hStmt, 3, SQL_C_CHAR, CODPRD, 128, (SQLINTEGER*)&ret3);
        rc = SQLBindCol(hStmt, 4, SQL_C_ULONG, &PRODC, 4, (SQLINTEGER*)&ret4);
        rc = SQLBindCol(hStmt, 5, SQL_C_ULONG, &OBJANNEE, 4, (SQLINTEGER*)&ret5);
        rc = SQLExecute(hStmt);
     
        /* IMPORTANT : Pour les requetes du style DROP/CREATE/UPDATE... */
        /*Vous pouvez utiliser :  rc = SQLExecDirectA(hStmt,(unsigned char*)szSql,SQL_NTS); */
     
        /* 4 - Boucle pour afficher les resultats */
        while(!(SQLFetch(hStmt) & 0xFFFE))
        {
        printf("{%s}{%s}{%s}{%i}{%i}\n",CODNIV, TYPNIV, CODPRD, PRODC, OBJANNEE);
        }
     
        /* 5 - Liberations et fermeture de la connection a la BDD */
        rc = SQLFreeStmt(hStmt, SQL_DROP);
        rc = SQLDisconnect(hDbc);
        rc = SQLFreeEnv(hEnv);
     
        getch();
     
        return 0;
    }

  13. #13
    Rédacteur
    Avatar de 3DArchi
    Profil pro
    Inscrit en
    Juin 2008
    Messages
    7 634
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juin 2008
    Messages : 7 634
    Points : 13 017
    Points
    13 017
    Par défaut
    Attention à penser aux balises [CODE] (bouton #). Cela facilite la lecture.
    Bon, sinon, je pense que tu dois avoir un problème avec ton installation de mingw. Et là, je n'ai qu'une solution : désinstaller Dev-cpp et réinstaller mingw et reconfigurer Code::block

  14. #14
    Futur Membre du Club
    Inscrit en
    Avril 2009
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Avril 2009
    Messages : 14
    Points : 5
    Points
    5
    Par défaut
    Salut le Forum,

    Bon alors, j'ai suivi les conseils de 3DARCHI mais rien n'y fait. J'ai toujours mes erreurs de compilation malgré la désinstallation de Dev-C et la ré-install Code::Blocks.

    Cela peut il venir du compilateur saisi dans Code::Blocks qui n'est peut être pas approprié ?

    Merci d'avance.

    Bonne journée à tous.

    YDU

  15. #15
    Expert éminent sénior
    Avatar de koala01
    Homme Profil pro
    aucun
    Inscrit en
    Octobre 2004
    Messages
    11 627
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 627
    Points : 30 689
    Points
    30 689
    Par défaut
    Salut, et bienvenue sur le forum.

    Il faut être attentif aux extensions des fichiers d'implémentation lorsque l'on travaille avec Gcc (MinGW en l'occurence):

    Lorsque l'on compile avec gcc et non g++, il se base sur les extensions pour déterminer s'il doit utiliser le compilateur C ou le compilateur C++ (voire, le compilateur Ada, Java, ou un autre encore).

    Ainsi, si tu utilise l'extension .c, gcc estimes par défaut qu'il s'agit d'un fichier... C

    Pour que gcc puisse estimer qu'il s'agit d'un fichier... C++, il faut une extension en *.cpp, *.cxx ou *.cc (voire *.C en majuscules sur les OS "sensible à la casse" tels que unixoides)

    Comme ton fichier main a l'extension *.c, le compilateur estimes qu'il s'agit d'un fichier... C, ce qui va provoquer quelques désagréments:

    Le compilateur n'ira pas chercher parmi les dossiers dédiés au C++ pour trouver les en-têtes et, même s'il le faisait, il aurait énormément de difficulté à accepter des choses telles que:
    • les classes
    • les spécificateur d'acces (private: public: protected)
    • les template
    • les opérateur new, new[], delete et delete[]
    • l'absence de typedef pour définir explictement les types
    • les fonctions membres de structures ou de classes
    • ...j'en oublie surement

    Vérifie en outre que tu as bien créé un projet C++ sous Code::Blocks, car il n'est pas impossible que quelques réglages supplémentaires soient différents
    [EDIT]Au passage, du fait des inclusions de <string> et de <iostram>, tu peux supprimer les inclusions de
    • <stdio.h>
    • <stdlib.h>
    • <string.h>
    qui sont des en-têtes propres au C ainsi que de <windows.h> qui, me semble-t-il, n'est pas nécessaire ici, et n'est en outre pas portable (ca, c'est certain )

Discussions similaires

  1. [MySQL] Requête sql avec champs inexistants
    Par nolookpass8 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 27/11/2013, 11h15
  2. [MySQL] Erreur requête SQL avec simple variable.
    Par Mck698 dans le forum PHP & Base de données
    Réponses: 21
    Dernier message: 31/05/2012, 14h33
  3. Requête SQL avec une variable
    Par tony_95 dans le forum SGBD
    Réponses: 4
    Dernier message: 11/05/2011, 13h55
  4. [WD7.5] Requête SQL avec champ de saisie
    Par paupiau dans le forum WinDev
    Réponses: 4
    Dernier message: 24/04/2008, 12h44
  5. [SQL] Requête SQL avec champ identique
    Par morgan47 dans le forum PHP & Base de données
    Réponses: 4
    Dernier message: 09/10/2007, 20h53

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