Appel S.O.S !

cs_awissam Messages postés 8 Date d'inscription dimanche 29 juin 2003 Statut Membre Dernière intervention 11 décembre 2007 - 1 août 2005 à 15:23
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007 - 1 août 2005 à 18:29
J'ai déjà posé la question mais j'ai pas encore trouvé.
J'essaie d'ajouter un enregistrement à une table dans une base Access à travers ODBC (mon programme est en visual c++). ma connexion est bon, j'ai pu lire mes Data de la base, sauf que à chaque fois j'appel la fonction AddNew() de CRecordset il me jette sauvagement dehors lors de l'éxecution. Voici mon code:

void CExpressoCito_prjView::OnAjout()
{
CDatabase Expresso;

Expresso.OpenEx(_T( "DSN=ExpressoCito_db;UID="));
CRecordset rs(&Expresso);
rs.Open(CRecordset::dynaset,"select [Id-exp],[texte],[origine] from Expression");


if( !rs.CanAppend( ) )
{
AfxMessageBox( "Impossible d'ajouter un renregistrement dans la base!" );
return;
}
else
{
//rs.Requery( );

rs.AddNew( ); /*BOUMM ! ici il explose !!!*/


}

//on ferme la session de CRecordset
rs.Close();

//On ferme la session de CDatabase
Expresso.Close();
}

2 réponses

magic_Nono Messages postés 1878 Date d'inscription jeudi 16 octobre 2003 Statut Membre Dernière intervention 16 mars 2011 1
1 août 2005 à 16:00
vois égalt tte la gestion de droits associé à ton cpte de connexion...



___________________________________________________________

Magicalement

Nono
0
meech Messages postés 209 Date d'inscription vendredi 11 avril 2003 Statut Membre Dernière intervention 14 août 2007
1 août 2005 à 18:29
Salut,

Peut-être devrais-tu te pencher sur les options possibles lors de l'instanciation de ta classe CRecordSet (cf. http://msdn.microsoft.com/library/default.asp?url=/library/en-us/vclib/html/_mfc_CRecordset.3a3a.Open.asp).

Pourtant, selon Microsoft, par défaut, tu devrais pouvoir réaliser un rs.AddNew sans option particulière. Mais, sait-on jamais...

Fais afficher la dernière erreur (fonction GetLastError()) et envoie la description, ce sera plus simple.

Ciao.
0