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

Visual C++ Discussion :

[VC++ 6.0] conversion CDBVariant


Sujet :

Visual C++

  1. #1
    Membre éclairé Avatar de philo71
    Profil pro
    Account manager
    Inscrit en
    Avril 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Account manager

    Informations forums :
    Inscription : Avril 2005
    Messages : 242
    Par défaut [VC++ 6.0] conversion CDBVariant
    bonjour,

    je cherche la conversion de "CDBVariant" vers "CString et int", car le résultat d'une requéte SQL, je voudrais pouvoir manipuler les données.
    je sais que CDVariant a un membre m_pstring qui pointe sur une CString.
    mais je voudrais plus d'explications sur la classe CDVariant !


    CDLT
    Philo

  2. #2
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    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
     
    class CDBVariant
    {
    // Constructor
    public:
    	CDBVariant();
     
    // Attributes
    public:
    	DWORD m_dwType;
     
    	union
    	{
    	  BOOL              m_boolVal;
    	  unsigned char     m_chVal;
    	  short             m_iVal;
    	  long              m_lVal;
    	  float             m_fltVal;
    	  double            m_dblVal;
    	  TIMESTAMP_STRUCT* m_pdate;
    	  CString*          m_pstring;
    	  CLongBinary*      m_pbinary;
    	  CStringA*			m_pstringA;
    	  CStringW*			m_pstringW;
    	};
     
    // Operations
    	void Clear();
     
    // Implementation
    public:
    	virtual ~CDBVariant();
    };
    la définition de la classe est très simple.
    CDBVariant encapsule une union où tu utilises un champ de l'union de manière exclusive.
    Si tu veux connaitre le type de champs courant tu lis la variable m_dwType.
    C'est tout, et consulte le petit fichier dbvar.cpp

  3. #3
    Membre éclairé Avatar de philo71
    Profil pro
    Account manager
    Inscrit en
    Avril 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Account manager

    Informations forums :
    Inscription : Avril 2005
    Messages : 242
    Par défaut conversion
    bonjour je ne sais comment faire pour extraire le pointeur m_pstring, je suis un peu confus....

    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
     
    CBaseRecord m_pSetBase;
    CDBVariant num,nom,prenom,adr,tel;
    int Index=0;
    CString SQLRequete("SELECT num_client, nom_client,prenom_.......
    .....			
    m_pSetBase.Open(CRecordset::forwardOnly,SQLRequete,CRecordset::readOnly);
      while (!m_pSetBase.IsEOF()){
        CString Identification;
         Index=0;
         m_pSetBase.GetFieldValue("nom_client",nom);
         m_pstring -> nom;
         result = m_pstring;
         ........
         m_FlexGrid->SetText(result); 
         .........
    ne faite pas attention je veillerais a metre le Try ...catch...plus tard
    cdlt
    Philo

  4. #4
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Mais CBaseRecord est une classe dérivée de CRecordset !!!
    Pourquoi tu ne mappes pas ton CBaseRecord à ta table sur laquelle tu fais ton select, c'est plus simple

  5. #5
    Membre éclairé Avatar de philo71
    Profil pro
    Account manager
    Inscrit en
    Avril 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Account manager

    Informations forums :
    Inscription : Avril 2005
    Messages : 242
    Par défaut CDBvariant
    bonjour Gabrielly,

    tu dit :
    Citation Envoyé par Gabrielly
    Mais CBaseRecord est une classe dérivée de CRecordset !!!
    Pourquoi tu ne mappes pas ton CBaseRecord à ta table sur laquelle tu fais ton select, c'est plus simple
    1/Ce que tu dit reste un peu flou pour moi, je comprens ce tu dit théoriquement mais j'ai du mal a écrire le code pour faire un mappe sur la classe CBaseRecord,
    si tu a un exemple de code sa m'arrangerais bien !

    2/j'aime plutot faire comme j'ai commencer car j'ai deja écrit d'autre algorithme
    avec la méthode que j'utilise,simplement convertir CDBvariant vers int et CString, a tu aussi un exemple de code ?



    CDLT *
    Philo

  6. #6
    Membre émérite
    Avatar de Gabrielly
    Inscrit en
    Juin 2004
    Messages
    722
    Détails du profil
    Informations forums :
    Inscription : Juin 2004
    Messages : 722
    Par défaut
    Est-ce que tu as jetté un coup d'oeil dans la FAQ?

    Si tu veux écrire un code plus simple sans les CDBVariant c'est maintenant.
    Il faut que Visual C++ génère pour toi ton CBaseRecord en ajoutant une nouvelle classe à l'aide de l'assistant "MFC ODBC Consumer class". Toi tu n'as rien à écrire de plus. L'assitant va de demander de sélectionner ta source de données, ensuite de sélectionner une table de ta base de données ensuite c'est tout.

  7. #7
    Membre éclairé Avatar de philo71
    Profil pro
    Account manager
    Inscrit en
    Avril 2005
    Messages
    242
    Détails du profil
    Informations personnelles :
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Account manager

    Informations forums :
    Inscription : Avril 2005
    Messages : 242
    Par défaut
    bonjour Gabrielly
    peut tu m'indiquer le lien de la FAC C++ Mfc pour les base de donnée!

    cdlt
    Philo

Discussions similaires

  1. Conversion Assembleur Motorola 68xxx en Intel 80xxx
    Par markham dans le forum Autres architectures
    Réponses: 3
    Dernier message: 22/11/2002, 20h09
  2. [MSXML] Comment empécher la conversion des entités ?
    Par nima dans le forum XSL/XSLT/XPATH
    Réponses: 3
    Dernier message: 08/11/2002, 14h14
  3. Algorithme de conversion de RTF vers HTML
    Par youtch dans le forum Algorithmes et structures de données
    Réponses: 10
    Dernier message: 10/09/2002, 12h35
  4. [Conversions] Millisecondes...
    Par agh dans le forum Langage
    Réponses: 2
    Dernier message: 06/08/2002, 11h25
  5. Réponses: 2
    Dernier message: 05/06/2002, 12h29

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