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 :

Problèmes affichage ou alimentation d'un vector ! ?


Sujet :

C++

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Invité
    Invité(e)
    Par défaut Problèmes affichage ou alimentation d'un vector ! ?
    Bonjour,

    Voila je développe un programme qui alimente un vecteur via des champs d'une table d'une base de données.

    Le problème auquel je suis confronté, c'est qu'après avoir alimenté mon vector, lorsque je veux l'afficher il m'affiche la dernière ligne de ma table autant de fois qu'il y a de ligne dans ma table !

    Voici le code source de la fonction que j'ai créée :

    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
    void CApplication::ReceptionPlannification(const char*  DateOfDay)
    {
        int nbligne,rep,nCol;
        char req [128]; 
     
        sprintf (req,"select * from planning where Date=%s ", DateOfDay); // On prépare la requete avec les valeurs contenues dans login et pwd
     
        // Exécution de la requête sur la table de la bdd
        rep = mysql_real_query (bdd, req, (unsigned int) strlen (req)); // query = requête
     
    	// Résultat de la requête effectuée
    	if (rep) cout<<"Erreur mysql de type : "<<mysql_error(bdd)<<endl<<"\n";
     
    	resultat = mysql_store_result (bdd);
    	nbligne = mysql_num_rows (resultat);
    	nCol = mysql_num_fields (resultat);
     
    	//Affiche la ligne du nom des champs
    	champs = mysql_fetch_fields (resultat);
    	char a [128]="/0"; 
     
    	for(int i=0 ; i < nbligne ; i++)
    	{
     
    	    lignes=mysql_fetch_row(resultat);
    	    sprintf (a,"%10s/%5s/%1s ", lignes[0],lignes[1],lignes[2]);
    	    planning.push_back((char*)a);
    	}
    	for (unsigned i=0; i<planning.size();i++)
    	     cout << planning[i]<< " ";
     
        cout << "Fin de Procedure...\n";
        mysql_free_result(resultat);
    }
    Dans mon .h j'ai déclaré en public vector <char *> planning;

    Pour info :

    -Ma table est composée d'un champ date,heure,action.
    -En résumé cette fonction est lancée avec pour paramètre la date actuelle,
    ensuite elle prépare une requête de selection des éléments de la table ou la date est egale a la date actuelle ensuite il regroupe tous les champs d'une ligne (grace au sprintf()) dans une variable, ensuite il insère cette variable a la fin de mon vector (pushback()) et ensuite je veux afficher les différents éléments de mon vector pour vérifier si il a bien été rempli !

    J'espere avoir été assez clair pour que vous puissiez bien comprendre cette fonction afin que vous puissiez m'aider !

    Merci

  2. #2
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Empiler une zone statique sans cesse réécrasée, ce n'est pas terrible.
    Empile plutôt des std::string.
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  3. #3
    Invité
    Invité(e)
    Par défaut
    Merci de ta réponse

    Donc si j'ai bien compri il faut que je remplace ma variable char a par un std::string ?


    Citation Envoyé par Luc Hermitte Voir le message
    Empiler une zone statique sans cesse réécrasée, ce n'est pas terrible.
    Empile plutôt des std::string.

    De plus je n'est pas très bien compri cette notion

  4. #4
    Expert confirmé
    Avatar de Luc Hermitte
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Août 2003
    Messages
    5 296
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Août 2003
    Messages : 5 296
    Par défaut
    Tu parles des strings ou des variables locales dont il ne faut pas garder les adresses ?
    Blog|FAQ C++|FAQ fclc++|FAQ Comeau|FAQ C++lite|FAQ BS|Bons livres sur le C++
    Les MP ne sont pas une hotline. Je ne réponds à aucune question technique par le biais de ce média. Et de toutes façons, ma BAL sur dvpz est pleine...

  5. #5
    Invité
    Invité(e)
    Par défaut
    Salut !


    Merci alimentant mon vecteur avec des string sa marche du tonnerre

    Merci @ Luc Hermitte

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 10
    Dernier message: 08/06/2009, 11h30
  2. problème affichage image
    Par thealpacino dans le forum Balisage (X)HTML et validation W3C
    Réponses: 8
    Dernier message: 30/05/2005, 13h56
  3. Problème affichage primitive
    Par goutbouyo dans le forum DirectX
    Réponses: 4
    Dernier message: 29/12/2004, 18h25
  4. [Plugin][VE] Problème affichage
    Par sebb84 dans le forum Eclipse Java
    Réponses: 1
    Dernier message: 05/07/2004, 14h50
  5. [DOS] Problème affichage de DOS dans un Memo
    Par Pedro dans le forum API, COM et SDKs
    Réponses: 9
    Dernier message: 25/06/2004, 13h31

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