En fait, je viens de me rendre compte que mon appel de la fonction n'était pas bon :
J'appelle maintenant cette fonction avec :
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 :
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 :
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
Partager