Bonsoir,

J'essaye de faire un lien avec une base de données Access, voila la méthode utilisée pour écrire un nouvel enregistrement dans la base :

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
 
void CChez_CSamuel_ECNajouaDoc::dbWrite(CEmprunteur E)
{
	CDatabase database;
	char chemin[MAX_PATH];
	CString SqlString;
	CString sNom, sPrenom;
	CString sDriver = "MICROSOFT ACCESS DRIVER (*.mdb)";
	CString sDsn;
	CString sFile = CGetChemin(chemin, MAX_PATH)+"\\bd1.mdb";
	TRACE("Chemin pour la base de données : %s \n", sFile);
	int iRec = 0; 	
 
	// code en provenance de codeproject.com 
	// Build ODBC connection string
	sDsn.Format("ODBC;DRIVER={%s};DSN='';DBQ=%s",sDriver,sFile);
	TRY
	{
		// Open the database
		database.Open(NULL,false,false,sDsn);
 
		// Allocate the recordset
		CRecordEmprunteur recset( &database );
 
			try
			{
			 recset.Open(CRecordset::dynaset,NULL, CRecordset::appendOnly) ;
			 recset.AddNew() ;
			 recset.m_EmprunteurName = E.getNom();
			 recset.m_EmprunteurPrenom = E.getPrenom();
			 recset.m_EmprunteurAdresse = E.getAdresse();
			 recset.m_EmprunteurTelephone = E.getTelephone();
			 recset.Update();
			 recset.Close();
			 database.Close();
			}
			catch(CDBException e)
			{
			 e.ReportError() ;
			 e.Delete() ;
			 database.Close();
			}
	}
	CATCH(CDBException, e)
	{
		// If a database exception occured, show error msg
		AfxMessageBox("Database error: "+e->m_strError);
	}
	END_CATCH;
}
Et voici le constructeur de ma classe dérivée de CRecordset :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
 
CRecordEmprunteur::CRecordEmprunteur(CDatabase* pdb)
: CRecordset(pdb)
{
//{{AFX_FIELD_INIT(CRecordEmprunteur)
m_EmprunteurID=0; 
m_EmprunteurName=_T("");
m_EmprunteurPrenom=_T("");
m_EmprunteurAdresse=_T("");
m_EmprunteurTelephone=_T("");
//}}AFX_FIELD_INIT
m_nDefaultType = snapshot;       //  here
}
Lorsque j'appel cette méthode d'écriture voici le message obtenu :

"Database error : Le gestionnaire ODBC ne prend pas en charge les feuilles de réponses dynamique"

J'ai absolument besoin de votre aide.
Je vous remercie des réponses que vous pourrez me fournir.