[ODBC] Access CRecordset AddNew
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:
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:
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.