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 :

Variable requete sql


Sujet :

C++

  1. #1
    Nouveau membre du Club
    Inscrit en
    Janvier 2005
    Messages
    5
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Par d�faut Variable requete sql
    Bonjour je voudrais faire savir comment on fait pour mettre des varaibles dans une requete sql j'a eu l'id�e de faire ca:
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
     
    string requete;
    	requete="Insert into temps (idpuce,numtapis,date) VALUES ();"
         if (mysql_query(conn,requete))
    //traitement d'erreur
    je ne sais pas comment remplir idpuce numtapis et date avec des varaibles qui existe il faut faire +nomdevariable il me semble mais je ne sais plus comment ca s'ecrit exactement

    merci

  2. #2
    Membre �m�rite

    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2005
    Messages
    634
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par d�faut
    Ca d�pend.

    Si tes variabes sont toutes des string (ce qui m'�tonnerait vu les noms de tes variables) tu n'as qu'� utiliser l'op�rateur += pour concat�ner tes variables.
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    std::string id("1");
    std::string numTapis("3333");
    std::string date("20.01.2006");
     
    std::string requete("Insert into temps (idpuce,numtapis,date) VALUES (");
    requete += id + ", " + numTapis + ", " + date + ");";
     
    if(mysql_query(conn, requete.c_str() ) )
    ...
    (Vite fait et pas test� donc � contr�ler).

    Sinon il faut utiliser les flux std::ostringstream pour mettre toutes tes variables puis r�cup�rer la cha�ne � la fin. (Voir FAQ).

    A+

  3. #3
    Membre exp�riment�
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par d�faut
    Je ne connais pas MySQL, mais les API de bases de donn�es proposent en g�n�ral des API o� la requete doit etre prepar�e, puis execut�e.

    Entre l'execution et la preparation tu fixes la valeur des ces variables. C'est particulierement utile quand tu dois faire plusiers requestes qui ne diferent que par les valeurs des variables.

    Sinon il reste la posibilit� du sprintf

    char *requete_base = "Insert into temps(idpuce,numtapis,date) VALUES (%s,%s,%s)"; a utiliser comme format pour sprintf (il doit y avoir un equivalent avec les strings mais je ne le connais pas.

  4. #4
    Membre �m�rite

    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2005
    Messages
    634
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par d�faut
    Citation Envoy� par Gandalf
    Je ne connais pas MySQL, mais les API de bases de donn�es proposent en g�n�ral des API o� la requete doit etre prepar�e, puis execut�e.
    C'est vrai que j'ai m�me pas pens� mais pour le C++ je conseillerais mysql++. Apparemment c'est l'API C que notre ami emploie.

    Citation Envoy� par Gandalf
    il doit y avoir un equivalent avec les strings mais je ne le connais pas
    Les flux !

    Citation Envoy� par Fiquet
    Sinon il faut utiliser les flux std::ostringstream pour mettre toutes tes variables puis r�cup�rer la cha�ne � la fin. (Voir FAQ).

  5. #5
    Membre exp�riment�
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par d�faut
    Je connais les flux, mais c'est tr�s nettement moins partique qu'un format...

    la un sprintf(query, querybase,val1,val2,val3);

    et la requete est bonne... (si query est bien allou�, � la "bonne" taille.)

    Mais de toute mani�re API C ou API C++, les requetes prepar�e puis execut�es doivent faire partie de l'API.

  6. #6
    Membre �m�rite

    Homme Profil pro
    �tudiant
    Inscrit en
    Mars 2005
    Messages
    634
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 37
    Localisation : Suisse

    Informations professionnelles :
    Activit� : �tudiant

    Informations forums :
    Inscription : Mars 2005
    Messages : 634
    Par d�faut
    Bah je vois pas pourquoi

    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    oss << "Insert into temps (idpuce,numtapis,date) VALUES (" << i << ", " << numTapis << ", " << date << ");";
    En fait ce serait comme compar� print() et cout finalement... En tout les cas ma pr�f�rence reste pour les flux du C++ qui je trouve sont plus facile � manier.

    Pour l'API je ne peux pas me prononcer je connais pas celle de MySQL, seulement mysql++.

  7. #7
    Membre exp�riment�
    Homme Profil pro
    Inscrit en
    Avril 2002
    Messages
    290
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Avril 2002
    Messages : 290
    Par d�faut
    Ben sur ce cas particulier, si tu dois faire plusieurs fois la requete tu fais plusierus fois le sprintf. Avec les flux tu es oblig� de r�ecrire, au moins partiellement, la requete � moins d'utiliser bcp de variables.

    Il y a des cas o� les flux sont plus pratique, mais pas l�.

Discussions similaires

  1. [MySQL] variable requete sql
    Par mathieux45 dans le forum PHP & Base de donn�es
    R�ponses: 9
    Dernier message: 29/05/2013, 11h47
  2. Variable requete SQL
    Par Guybrush87 dans le forum Biblioth�ques, syst�mes et outils
    R�ponses: 1
    Dernier message: 27/09/2011, 17h37
  3. R�cup�rer valeur variable & requete sql
    Par Mouky dans le forum VB 6 et ant�rieur
    R�ponses: 1
    Dernier message: 11/05/2011, 11h08
  4. [Oracle] Probleme variable requete SQL Oracle PHP
    Par tatann dans le forum PHP & Base de donn�es
    R�ponses: 4
    Dernier message: 23/03/2011, 17h25
  5. [MySQL] probleme variable requete SQL
    Par docteurdorian dans le forum PHP & Base de donn�es
    R�ponses: 10
    Dernier message: 25/05/2009, 15h11

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