Utilisation de CDatabase pour modifier une base de données O
	
	
		J'utilise le code suivant pour essayer d'accèder à une base de donnèes.
	Code:
	
| 12
 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
 
 | #include "afxdb.h"
 
class CRec : public CRecordset
{
public :
	CRec (CDatabase*);
	CString m_prod;
	virtual void DoFieldExchange (CFieldExchange *pFX);
};
 
void main ()
{
int rc;
CDatabase db;
rc=db.OpenEx ("DRIVER=SQL Server;SERVER=NOM_ORDINATEUR;UID=sa;PWD=interstiss",0);
printf ("OpenEx=%x\n",rc);
CRec rec (&db);
printf ("rec=%x\n",rec);
rc=rec.Open (CRecordset::dynaset,"select * from [T Assemlages]",CRecordset::none);
printf ("Open=%x\n",rc);
rec.MoveFirst ();
rc=rec.CanUpdate ();
printf ("prod=%s\n",rec.m_prod);
printf ("CanUpdate=%x\n",rc);
rec.Edit ();
rec.Close ();
db.Close ();
}
 
CRec::CRec (CDatabase *db)
	 :CRecordset (db)
{
}
void CRec::DoFieldExchange (CFieldExchange *pFX)
{
CRecordset::DoFieldExchange (pFX);
pFX->SetFieldType (CFieldExchange::outputColumn);
RFX_Text (pFX,"Num produit",m_prod);
} | 
 L'éxécution donne le résultat suivant
OpenEx=1
rec=5530d0
Open=1
prod=
CanUpdate=1
puis le programme se plante lors de l'execution de la méthode Edit
dans dbcore.cpp ligne 1622 sur une instruction ASSERT (m_nFields!=0)
en effet la valeur est n_mFields est 0.