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 :

Utilisation d'une base de donn�e


Sujet :

Visual C++

Vue hybride

Message pr�c�dent Message pr�c�dent   Message suivant Message suivant
  1. #1
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par d�faut Utilisation d'une base de donn�e
    Bonjour,

    J'ai un projet MFC sous visual studio 2005, dans lequel je voudrais utiliser une base de donn�e, dans laquelle je pourrais lire et �crire.

    Je pensais utiliser une base de donn�e access (mais elle n'est pas encore cr��e, donc je peux changer si besoin).

    J'ai fait "projet/Ajouter une classe", puis j'ai choisi consommateur ODBC MFC.

    J'ai ensuite choisi la source de donn�e machine MS Access database, puis choisi une base de donn�e de test que j'ai cr�� avec access, et qui ne contient qu'une seule table. Je n'ai pas mis de mot de passe et de nom de connection.

    J'ai choisi l'option Dynaset, et d�coch� l'option "Lier toutes les colonnes".

    Dans le fichier .h g�n�r�, j'ai une fonction GetDefaultConnect(); qui semble permettre la connection � la base de donn�e, et que j'essaye d'appeler dans mon programme, apr�s avoir inclu ce fichier.h

    Lors de la compilation, j'obtiens l'erreur suivante :
    1>c:\documents and settings\sylvain\bureau\pair\projet\test\test\testdlg.cpp(99) : error C3861: 'GetDefaultConnect' : identificateur introuvable
    Je n'ai pas choisi de prise en charge des bases de donn�es au moment de la cr�ation, car je n'avais pas pr�vu d'en utiliser au d�part. De plus, il s'agit d'un projet de type boite de dialogue, qui ne propose pas cette option, peut �tre que �a vient de l�...

    Quelqu'un peut m'aider � faire fonctionner cette fonction, ou � g�rer la base de donn�e diff�rement?

    Merci d'avance.

  2. #2
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par d�faut
    En fait, je viens de me rendre compte que mon appel de la fonction n'�tait pas bon :
    J'appelle maintenant cette fonction avec :
    Code : S�lectionner tout - Visualiser dans une fen�tre � part
    CRandom::GetDefaultConnect();
    (Random �tant le nom de ma table dans la base de donn�e, dans lequel je voudrais stocker des nombres al�atoires)

    J'ai maintenant :
    1>c:\documents and settings\sylvain\bureau\pair\projet\test\test\testdlg.cpp(99) : error C2352: 'CRandom::GetDefaultConnect' : appel non conforme d'une fonction membre non static
    Je ne sais pas vraiment comment utiliser des classes (je d�bute, et pour le moment, je me contente d'utiliser des fonctions pr�sentes dans le fichier dans lequel je code).

    Je vous laisse le code g�n�r� automatiquement :

    Random.h :

    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
    // Random.h : déclaration de CRandom
     
    #pragma once
     
    // code généré activé jeudi 15 mai 2008, 16:47
     
    class CRandom : public CRecordset
    {
    public:
    	CRandom(CDatabase* pDatabase = NULL);
    	DECLARE_DYNAMIC(CRandom)
     
    // Données Champ/Paramètre
     
    // Les types de chaînes ci-dessous (s'ils existent) reflètent le type de données réel du
    // champ de la base de données - CStringA pour les types de données ANSI et CStringW pour les types de données
    // Unicode. Cela empêche le pilote ODBC d'exécuter des conversions
    // superflues éventuelles.  Si vous le souhaitez, vous pouvez remplacer ces membres
    // par des types CString et le pilote ODBC effectuera toutes les conversions nécessaires.
    // (Remarque : Vous devez utiliser une la version 3.5 du pilote ODBC ou une version ultérieure
    // pour prendre en charge à la fois Unicode et ces conversions.)
     
     
    // Substitutions
    	// L'Assistant a généré des substitutions de fonctions virtuelles
    	public:
    	virtual CString GetDefaultConnect();	// Chaîne de connexion par défaut
     
    	virtual CString GetDefaultSQL(); 	// SQL par défaut pour Recordset
    	virtual void DoFieldExchange(CFieldExchange* pFX);	// Prise en charge RFX
     
    // Implémentation
    #ifdef _DEBUG
    	virtual void AssertValid() const;
    	virtual void Dump(CDumpContext& dc) const;
    #endif
     
    };
    Random.cpp :

    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
    // Random.h : implémentation de la classe CRandom
     
     
     
    // Implémentation CRandom
     
    // code généré activé jeudi 15 mai 2008, 16:47
     
    #include "stdafx.h"
    #include "Random.h"
     
    /*** Lignes ajoutées après avoir observé la structure du même fichier dans un projet MFC avec une BDD déclarée dés le départ ***/
    #include "test.h"          //Nom de mon projet
    #ifdef _DEBUG
    #define new DEBUG_NEW
    #endif
    /************************************************************************************************************/
     
    IMPLEMENT_DYNAMIC(CRandom, CRecordset)
     
    CRandom::CRandom(CDatabase* pdb)
    	: CRecordset(pdb)
    {
    	m_nFields = 0;
    	m_nDefaultType = dynaset;
    }
     
    CString CRandom::GetDefaultConnect()
    {
    	return _T("DSN=MS Access Database;DBQ=C:\\Documents and Settings\\Sylvain\\Bureau\\PAIR\\Projet\\test\\test.mdb;DefaultDir=C:\\Documents and Settings\\Sylvain\\Bureau\\PAIR\\Projet\\test;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;");
    }
     
    CString CRandom::GetDefaultSQL()
    {
    	return _T("");
    }
     
    void CRandom::DoFieldExchange(CFieldExchange* pFX)
    {
    	pFX->SetFieldType(CFieldExchange::outputColumn);
    // Des macros telles que RFX_Text() et RFX_Int() dépendent du
    // type de la variable membre, et non du type de champ dans la base de données.
    // ODBC tente de convertir automatiquement la valeur de la colonne afin qu'elle soit du type demandé
     
    }
    /////////////////////////////////////////////////////////////////////////////
    // CRandom diagnostics
     
    #ifdef _DEBUG
    void CRandom::AssertValid() const
    {
    	CRecordset::AssertValid();
    }
     
    void CRandom::Dump(CDumpContext& dc) const
    {
    	CRecordset::Dump(dc);
    }
    #endif //_DEBUG
    Merci d'avance

  3. #3
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par d�faut
    Je viens de voir qu'il �tait possible de se connecter � une base de donn�e � partir de Visual Studio, par la commande Outil/Se connecter � la base de donn�e

    La connexion fonctionne, par contre, je ne vois pas comment lancer cette connexion par le programme, puis faire de requ�tes.

    Est ce que quelqu'un a d�j� utilis� �a, et pourrait m'expliquer?
    (Je suis pas s�r que �a soit vraiment pr�vu pour y acc�der ensuite par le programme, mais sinon, je ne vois pas l'utilit�).
    Merci

  4. #4
    Membre �m�rite
    Avatar de Spout
    Profil pro
    Ing�nieur syst�mes et r�seaux
    Inscrit en
    F�vrier 2007
    Messages
    904
    D�tails du profil
    Informations personnelles :
    �ge : 40
    Localisation : France, Val d'Oise (�le de France)

    Informations professionnelles :
    Activit� : Ing�nieur syst�mes et r�seaux

    Informations forums :
    Inscription : F�vrier 2007
    Messages : 904
    Par d�faut
    Citation Envoy� par CyberSlan Voir le message
    J'ai un projet MFC sous visual studio 2005, dans lequel je voudrais utiliser une base de donn�e, dans laquelle je pourrais lire et �crire.
    Jette un oeil dans la FAQ � cette entr�e et les suivantes.

  5. #5
    Membre confirm�
    Profil pro
    Inscrit en
    Avril 2008
    Messages
    89
    D�tails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2008
    Messages : 89
    Par d�faut
    OK, merci pour le lien , je regarde �a dans la journ�e

Discussions similaires

  1. [ODBC] Utilisation d'une base de donn�es Microsoft Works en PHP, possible ?
    Par pikatshu dans le forum PHP & Base de donn�es
    R�ponses: 1
    Dernier message: 11/04/2007, 08h39
  2. [JGuard] Utilisation d'une base de donn�e
    Par worldchampion57 dans le forum S�curit�
    R�ponses: 3
    Dernier message: 09/06/2006, 00h38
  3. [VS2005]Utilisation d'une base de donn�es avec VB 2005
    Par gabrielgarcin dans le forum Windows Forms
    R�ponses: 1
    Dernier message: 08/02/2006, 15h46
  4. R�ponses: 5
    Dernier message: 13/12/2005, 16h04
  5. Utilisation d'une base de donn�es a distance
    Par newbie57 dans le forum Bases de donn�es
    R�ponses: 2
    Dernier message: 27/10/2005, 09h25

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