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 :

requete sql avec c++


Sujet :

C++

  1. #1
    Membre confirm�
    Inscrit en
    Janvier 2007
    Messages
    65
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par d�faut requete sql avec c++
    Salut � tous,
    voil� mon probl�me :
    j'ai une requ�te dans mon programme c++, la voici :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    char *requete;
    requete= "UPDATE clients SET flag='1'WHERE id_chambre=1" ;
    cette requ�te marche et l'action demand�e est ex�cut�e dans la BD, sauf que la valeur 1 est fictive et qu'en verit� cette valeur est r�cup�r�e � partir d'un variable, donc la requete est sens�e avoir plutot cette forme :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    char *requete;
    int chambre(1);
    requete= "UPDATE clients SET flag='1'WHERE id_chambre=chambre" ;
    mais �a ne marche pas
    Comment faire pour que la condition de WHERE se fasse avec la variable "chambre" quelques soit sa valeur!!!

    Merci pour toute aide!!

  2. #2
    Membre �m�rite Avatar de J�r�my Lefevre
    Homme Profil pro
    D�veloppeur Java
    Inscrit en
    Juin 2004
    Messages
    898
    D�tails du profil
    Informations personnelles :
    Sexe : Homme
    �ge : 41
    Localisation : Luxembourg

    Informations professionnelles :
    Activit� : D�veloppeur Java
    Secteur : High Tech - �diteur de logiciels

    Informations forums :
    Inscription : Juin 2004
    Messages : 898
    Par d�faut
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
     
    string chambre;
    string requete= "UPDATE clients SET flag='1'WHERE id_chambre="+chambre ;
    ensuite � toi de faire la conversion si tuy r�cup�re un int pour la variable chambre pour le cast� en string

  3. #3
    Membre confirm�
    Inscrit en
    Janvier 2007
    Messages
    65
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par d�faut
    Salut,
    merci pour la r�ponse mais �a ne marche pas surout que je suis sens�e manipuler des pointeur!!

    j'ai essay� ceci :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    requete= "UPDATE clients SET flag='1'WHERE id_chambre="+'1' ;
    mais �a ne mrche pas non plus

    Comment faire???

  4. #4
    Membre �prouv� Avatar de galak63
    Profil pro
    Inscrit en
    Novembre 2006
    Messages
    126
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2006
    Messages : 126
    Par d�faut
    c'est "1" qu'il faut mettre, pas '1'

  5. #5
    Membre confirm�
    Inscrit en
    Janvier 2007
    Messages
    65
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par d�faut
    Salut,
    Merci pour la r�ponse mais "1" ne marche pas, il n'est m�me pas compilable!!

  6. #6
    Membre confirm�
    Inscrit en
    Janvier 2007
    Messages
    65
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par d�faut
    Salut,
    finalement le probl�me est r�gl�..
    je poste la solution au cas o� �a interresserais qlq...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    char requete [256];
    char ch_toString[4];
    int chambre(0);
    strcpy(requete,"UPDATE clients SET flag='0'WHERE id_chambre=\'");
    				strcat(requete,itoa(chambre,ch_toString,10));
                    strcat(requete, "\'");
    				connectionSql(requete);
    Merci � tous pour vos r�ponse!!

  7. #7
    Membre �m�rite
    Profil pro
    Inscrit en
    Mai 2006
    Messages
    780
    D�tails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyr�n�es)

    Informations forums :
    Inscription : Mai 2006
    Messages : 780
    Par d�faut
    Citation Envoy� par skyangel20
    Salut,
    finalement le probl�me est r�gl�..
    je poste la solution au cas o� �a interresserais qlq...
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    1
    2
    3
    4
    5
    6
    7
    8
     
    char requete [256];
    char ch_toString[4];
    int chambre(0);
    strcpy(requete,"UPDATE clients SET flag='0'WHERE id_chambre=\'");
    				strcat(requete,itoa(chambre,ch_toString,10));
                    strcat(requete, "\'");
    				connectionSql(requete);
    Merci � tous pour vos r�ponse!!
    malheureusement c'est du C pas du C++

    la solution qui �tait propos�e c'�tait plut�t de faire �a avec des std::string ( voir la FAQ pour l'utilisation avec des entiers, la concat�nation avec + et le passage � ta fonction du style: connectionSql( requete.c_str() );

    quelque chose comme �a :

    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
     
    #include <sstream>
    #include <string>
     
    int main(int argc, char** argv)
    {
     
        std::string requete("update etc.. where=");    
        int entier = 3;
     
        std::ostringstream ss;
        ss << requete << entier << "\'";
     
        connectionSql( ss.str().c_str() );
    }
    du coup, si ta requ�te fait plus de 256 caract�res, tu n'es pas emb�t�. Idem pour ton entier qui peut faire la taille qu'il veut une fois converti en cha�ne.

    Dans boost il y a les lexical_cast<> qui permettent simplement de convertir un entier en string et inversement, ce qui permet de s'affranchir du stringstream (au moins dans ton code). C'est s�r que ce n'est pas �vident au d�but de comprendre pourquoi ce type de conversion n'existe pas dans le standard.

    Ici, ss.str().c_str() indique:

    ss.str() -> r�cup�re la string construite dans le string stream
    .c_str() -> r�cup�re la string comme un type C ( un char * donc ), con�ut justement pour les fonctions qui attendent un type C.

    Par contre il ne faut pas que ta fonction connectionSql modifie ta cha�ne ( qu'elle soit d�finie comme constante, c'est � dire un param�tre de type const char * )

  8. #8
    Membre confirm�
    Inscrit en
    Janvier 2007
    Messages
    65
    D�tails du profil
    Informations forums :
    Inscription : Janvier 2007
    Messages : 65
    Par d�faut
    Merci
    je vais essayer �a!!

    Bonne journ�e!

+ R�pondre � la discussion
Cette discussion est r�solue.

Discussions similaires

  1. Requete SQL avec Rand()
    Par leloup84 dans le forum Langage SQL
    R�ponses: 1
    Dernier message: 03/02/2006, 16h41
  2. requete SQL avec valeur max
    Par oeil de nuit dans le forum Langage SQL
    R�ponses: 2
    Dernier message: 06/01/2006, 08h58
  3. REQUETE SQL AVEC HAVING
    Par juju_77 dans le forum MS SQL Server
    R�ponses: 8
    Dernier message: 05/08/2005, 09h49
  4. Probleme de requete SQL avec un champs date
    Par ju360modena dans le forum ASP
    R�ponses: 5
    Dernier message: 16/06/2005, 11h18
  5. [JDBC] retour de requete sql avec valeur NULL
    Par maxxou dans le forum JDBC
    R�ponses: 3
    Dernier message: 13/09/2004, 14h40

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