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 614
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : Belgique

    Informations professionnelles :
    Activité : aucun

    Informations forums :
    Inscription : Octobre 2004
    Messages : 11 614
    Points : 30 626
    Points
    30 626
    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 )
    A méditer: La solution la plus simple est toujours la moins compliquée
    Ce qui se conçoit bien s'énonce clairement, et les mots pour le dire vous viennent aisément. Nicolas Boileau
    Compiler Gcc sous windows avec MinGW
    Coder efficacement en C++ : dans les bacs le 17 février 2014
    mon tout nouveau blog

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