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

MFC Discussion :

[MFC] Afficher des champs de CRecordSet dans des MessageBox


Sujet :

MFC

  1. #1
    Membre du Club Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Points : 61
    Points
    61
    Par défaut [MFC] Afficher des champs de CRecordSet dans des MessageBox
    je desire tt simplement le contenu de ma table CARD dans des messagebox successifs ( pour commencer )..mon code actuel ne marche pas
    voiçi 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
     
     
    void CDatabaseConnector::GetODBCConnection()
    {
     
    	CDatabase mydb;
     
    	//if( !mydb.OpenEx( _T( "ODBC;DSN=MYDATASOURCE;UID=;PWD=" ), CDatabase::openReadOnly )
    if( !mydb.OpenEx( _T( "ODBC;DSN=SPIN;UID=;PWD=" ), 2 ))
    	{
        AfxMessageBox("Impossible d'ouvrir la base de donnée en lecture seule");
        return;
    }
    else
    {
        AfxMessageBox("Test d'ouverture réussi");
        mydb.ExecuteSQL("select * from CARD");
    }
     
    CRecordset r(&mydb);
     
    //... utilisation
     
    while(!r.IsEOF)
    { 
      CString  str = r.GetFieldValue(i,"");
      AfxMessageBox("la veleur du champ" est + r); // erreur deja ici mais ej sais pas comment concatener 2 chaines  dans un messagebox
      r.MoveNext();
    }
    r.Close();  // Je ferme d'abord le recordset
    mydb.Close();  // Je me déconnecte
     
    // je me reconnecte à une autre source de données
     
    }
    et voiçi la structure de ma table oracle

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    champ1:Date
    champ2:Varchar2(50)
    champ:Number(1);
    champ:Number(10)
    pourriez vosu m'aidez !! ai ej bien parcouru mon recordset ? et comment effecteur l'affichage des champs ( en tenant compte de la concersion de leur type pour etre utilise dans un messagebox )

    j'utilise C++ sosu VS2003 ( donc la version VC7)

    merci


    [Titre modifié par Loulou24, merci d'utiliser des titres explicites à l'avenir]
    Ce que l'on fait dans sa vie...

  2. #2
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    CString strAfficher = "la veleur du champ est : " + str;
    AfxMessageBox(strAfficher);
    il y a du linge sur la corde à linge

  3. #3
    Membre du Club Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Points : 61
    Points
    61
    Par défaut
    merci !!!

    mais mon code demeure quand meme non fo,ctionnel!! je n'aarrive pas a lme connecter à la base pourtant elle existe bel et bien et bien configurée!!! ai je oublié quelquechose avant d'exploiter mon recordset ?
    Ce que l'on fait dans sa vie...

  4. #4
    Membre du Club Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Points : 61
    Points
    61
    Par défaut
    alors pourrait on me dire ou se trouve l'erreur dans mon code? pourquoi je n'arrive pas a em connecter à ma base ODBC Oracle qui est deja configurée ? et comment je peux parcourir le recordset et laffecter respectivement chaque valeur de chaque ligne resultat dabns une variable de même type etant donnée le schema de ma table
    Ce que l'on fait dans sa vie...

  5. #5
    Membre du Club Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Points : 61
    Points
    61
    Par défaut
    y aurait il un exemple semblable au miens pour verifier !! j'avoue que je en comprends pas ou est lm'anomalie et je suis vraiement bloqué !
    Ce que l'on fait dans sa vie...

  6. #6
    Membre émérite
    Avatar de la drogue c'est mal
    Profil pro
    Inscrit en
    Novembre 2002
    Messages
    2 253
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Novembre 2002
    Messages : 2 253
    Points : 2 747
    Points
    2 747
    Par défaut
    si tu mettais le tout dans un try catch avec CDBException et que tu regardais l'erreur en question ?
    il y a du linge sur la corde à linge

  7. #7
    Membre averti
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Points : 343
    Points
    343
    Par défaut
    Citation Envoyé par la drogue c'est mal
    [...]un try catch avec CDBException[...]
    putin j'ete pas au courant qu'il existait déja une classe d'exception nommée CDBException : heureusement que j'utilise pas les MFC car y'aurai un conflit entre ma classe CDBException et celle des database ^^
    On en apprend tous les jours
    1 || 1 = 1
    1 && 1 = 1
    1 * 1 = 1
    Bon après tout, peut-être que Van Damme avait raison :
    1 + 1 = 1 // harmonie parfaite

  8. #8
    Membre du Club Avatar de jlassira
    Inscrit en
    Mai 2005
    Messages
    228
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 228
    Points : 61
    Points
    61
    Par défaut
    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
     
     
    try {
     
    CSPINCardList *m_CSPINCardList = CSPINCardList::GetInstance(); 
    CVCAConfig *m_VcaConfig = CVCAConfig::GetInstance();
    CDatabase mydb;
     
     if( !mydb.OpenEx( _T( "DSN=SPINCV.TELNET.TUNIS;UID=stager;PWD=stager" ), 2 ))
    	{
        AfxMessageBox("Impossible d'ouvrir la base de donnée en lecture seule");
        return;
    }
    else
    {
        AfxMessageBox("Test d'ouverture réussi");
        mydb.ExecuteSQL("select * from CARD");
        CRecordset r(&mydb); 
     
      //... extraction et affectation des données
     while(!r.IsEOF())    
    {            
        CSPINCard a ;
     
    	// remplir a avec les attributs correspondants
     
    	 // ... pour l'instant je ne veux rien faire 
     
    	//ajouter la fiche resultat a l'ensembel deja existant
              m_CSPINCardList->CurrentSPINCardList.Add(a);
     
    	//CAlphaManager m_CAlphaManager;     
     
    }
     
    if ( r.GetODBCFieldCount() == 0 )
    {
     
    	AfxMessageBox("la base est vide ! " ) ;
    }
     
    if ( r.GetODBCFieldCount() < 10 )
    {
     
    	AfxMessageBox("la base ne contient pas toutes les fiches SPIN! " ) ;
    }
     
    r.Close();  // Je ferme d'abord le recordset
    mydb.Close();  // Je me déconnecte
     
     
    }
     
    }
     
    catch ( CDBException e)
    {
        AfxMessageBox(e.GetErrorMessage());
     
     
    }


    et aparamment CDBException n'est pas reconnue par le compilateur :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    CDatabaseConnector.cpp(65): error C2316: 'CDBException' : ne peut pas être intercepté en tant que destructeur et/ou le constructeur de copie est inaccessible
    Ce que l'on fait dans sa vie...

Discussions similaires

  1. Afficher le résultats dans des champs de texte
    Par mehdi.cheddani dans le forum VB.NET
    Réponses: 22
    Dernier message: 31/03/2013, 17h16
  2. [Google Maps] Afficher un champ de texte dans des marker
    Par hiden dans le forum APIs Google
    Réponses: 3
    Dernier message: 20/06/2012, 20h37
  3. Réponses: 2
    Dernier message: 27/06/2007, 10h42
  4. Afficher les coordonnées d'un layer dans des champs texte
    Par renaud26 dans le forum Général JavaScript
    Réponses: 15
    Dernier message: 15/08/2006, 13h53
  5. Calcul dans des champs de saisie
    Par leeloo076 dans le forum ASP
    Réponses: 4
    Dernier message: 07/04/2004, 10h09

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