bonjour,
je developpe actuellement une appli communicant avec une base de donnees access 2000 grace a ADOLib (encapsulation d'ADO)
j'execute le code suivant pour me connecter a la bdd :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
CString sProvider("Provider=Microsoft.Jet.OLEDB.4.0;Data Source=G:\\Developpement\\Projet Messagerie\\Access\\db_essai.mdb;Persist Security Info=False");
ADOConnect myConn; 
if (!myConn.Connect(sProvider)) { 
	cout << myConn.GetError() << endl; //Affichage de l'erreur en cas de problème
	exit (0);
}
jusque la tout se passe bien a part le fait que quand je veux executer "ADOConnect myConn; " en mode pas a pas il me demande le path de "vc60.pdb".
Ce fichier est present mais il dit que ce n'est pas le bon, je fait donc annuler et continu l'execution en pas a pas.

Par la suite j'execute les ligne suivante:
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
 
ADOSelect mySel1;
CString* rsql1 = new CString("SELECT id FROM utilisateur WHERE utilisateur.password = \'" + password + "\' AND utilisateur.login = \'" + login + "\'");
int id_u = 0;
if (!mySel1.Open(myConn.ADOConn, *rsql1)){
	cout << mySel1.GetError() << endl; // Affichage de l'erreur
} else {
	mySel1.Fetch();
	...
là, a l'execution de la ligne avec le "if", j'ai le message suivant dans la fenetre de debug :
First-chance exception in appli1.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.

et dans la console :

800 - Unknown error 0x800A0E7D
ADODB.Recordset
Impossible d'utiliser cette connexion pour effectuer cette opÚration. Elle est fermÚe ou non valide dans ce contexte.

j'ai alors changer la connect string en :
Provider=Microsoft.Jet.OLEDB.4.0;User ID=admin;Data Source=G:\Developpement\Projet Messagerie\Access\db_essai.mdb;Mode=ReadWrite;Persist Security Info=False
et quelques autres se rapprochant mais ça ne change rien

je solicite alors votre aide
merci d'avance