Connexion ADO....

Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006 - 3 sept. 2004 à 11:28
Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006 - 3 sept. 2004 à 15:25
Bonjour,
Je développe une appli ou j'utilise une connexion ADO à une base Access.
Si sur ma machine, ça marche très bien, il y ades problème chez les autres (et evidemment, ça doit marche pareil chez tout le monde!)
Sur ma machine, j'ai Office 2000 d'installé, donc j'utilise le provider Jet OLEDB 4.0, MAIS, le reste de la boite utilise Office 97 (pour encore 3 mois) et donc ça doit également tourner sous Jet OLEDB 3.51, ce qui marche très bien chez moi sur l'un ou l'autre, mais apparemment, pas chez eux...

(Note: j'ai convertis ma base Access en 97 pour les autres utilisateurs)

Voilà le code de connexion :
long count, i = 0, t_var;
char limit[8];
_variant_t var;
_bstr_t bst;
    _ConnectionPtr m_pConnect = 0; 
_RecordsetPtr m_pRecord;
LPTYPE ListType; 
cout<<"Connexion a la base de donnees..."<<endl;
CoInitialize(NULL);
//Connexion:
try
{
char ConnectionString[512] = "Provider=";
char tempProvider[50];
char tempDB[50];
char * CWD = new char [256];
char File[256];
char locDB[128];
CWD = MyPath(CWD);
strcpy(File, CWD);
strcat(File, "Projet1.ini");
strcpy(locDB, CWD);
//Lecture dans l'ini:
GetPrivateProfileString(
"CONNEXION",
"Provider",
"Introuvable",
tempProvider,
sizeof(tempProvider),
File);
GetPrivateProfileString(
"CONNEXION",
"DBName",
"Introuvable",
tempDB,
sizeof(tempDB),
File);
strcat(locDB, tempDB);
strcat(ConnectionString, tempProvider);
strcat(ConnectionString, ";Data source=");
strcat(ConnectionString, locDB);
//On lance la connexion:
TESTHR(m_pConnect.CreateInstance(__uuidof(Connection)));
m_pConnect->Open(ConnectionString, "", "", NULL);
//On crée un recordset vide:
TESTHR(m_pRecord.CreateInstance(__uuidof(Recordset)));

}
catch(_com_error & ce)
{
//Si erreur pendant la connexion, on affiche l'explication
char tmp[50];
strcpy(tmp, ce.Description());
printf("Errors : %s\n", tmp);
system("pause");
exit(-1);
}
try
{
//ouverture de la requête dans le recordset créé:
m_pRecord->Open("SELECT * FROM Type", _variant_t((IDispatch *) m_pConnect,true), 
adOpenStatic, adLockReadOnly, adCmdText);
}
catch(_com_error & ce)
{
char tmp[100];
strcpy(tmp, ce.Description());
printf("Errors : %s\n", tmp);
system("pause");
exit(-1);
}


Mais apparemment, ça bloque sur :
m_pRecord->Open("SELECT * FROM Type", _variant_t((IDispatch *) m_pConnect,true),
adOpenStatic, adLockReadOnly, adCmdText);

Si quelqu'un a déjà eu ce problème...

(re-Note : les machines sont sous Windows NT 4.0 si ça peut aiguiller...)

2 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
3 sept. 2004 à 14:02
Sur les postes ou y a probleme, installe Mdac 2.5 (pas au dessus sinon n'y aura pas le Jet dedans).

ciao...
BruNews, Admin CS, MVP VC++
0
Clonk Messages postés 278 Date d'inscription mardi 22 janvier 2002 Statut Membre Dernière intervention 29 août 2006
3 sept. 2004 à 15:25
Merci!
Maintenant il va falloir attendre qu'ils veuilles bien l'installer....
C pas gagné mais bon ^_^;
0
Rejoignez-nous