Probleme deconnexion

cs_0xYg3n3 Messages postés 115 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 8 octobre 2007 - 5 févr. 2005 à 22:07
cs_0xYg3n3 Messages postés 115 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 8 octobre 2007 - 6 févr. 2005 à 12:40
Bonsoir les forumers developpeurs



Vous aller peut etre rire mais je n'arrive pas a me deconnecter proprement d'une base

de donnes access.



J'utilises ADO



voila le code pour me deconnecte



m_pConnectionPtr m_pConnexion;





//Si je suis connecte

//Alors je me deconnectes

m_pConnexion->Close();



des que je veux compiler ça il me met une erreur sur <comip.h>

c:\program files\microsoft visual studio\vc98\include\comip.h(732) :

error C2227: left of '->QueryInterface' must point to class/struct/union





// Compares the provided pointer with this by obtaining IUnknown interfaces

// for each pointer and then returning the difference.

//

template<typename _InterfacePtr> int _CompareUnknown(_InterfacePtr p) throw(_com_error)

{

IUnknown* pu1, *pu2;



if (m_pInterface != NULL) {

HRESULT hr =
m_pInterface->QueryInterface(__uuidof(IUnknown),
reinterpret_cast<void**>(&pu1));



if (FAILED(hr)) {

_com_issue_error(hr);

}



pu1->Release();

}

else {

pu1 = NULL;

}



if (p) {

HRESULT hr = p->QueryInterface(__uuidof(IUnknown), reinterpret_cast<void**>(&pu2)); //voici l'erreur



if (FAILED(hr)) {

_com_issue_error(hr);

}



pu2->Release();

}

else {

pu2 = NULL;

}



return pu1 - pu2;

}





Bref etant donne que c'est un fichier include de microsoft je n ose pas modifier quoi que ce soit

si quelqu'un a une idee du probleme



Sur ce bye all

et bonne continuation





0xYg3n3

4 réponses

BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 févr. 2005 à 10:54
0
cs_0xYg3n3 Messages postés 115 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 8 octobre 2007
6 févr. 2005 à 12:27
Merci pour ta reponse



j'ai rajoute comme toi la condition



if (m_pConnexion != NULL)


if (m_pConnexion->State != adStateClosed)


m_pConnexion->Close();





//etrange quand meme sans la condition j'ai une erreur de compilation mais bon



Maintenant je me demandes si il faut fermer le _RecordSet apres chaque lecture de requete

Ou si je le fermes une fois dans le destrcuteur de ma classe
0
BruNews Messages postés 21040 Date d'inscription jeudi 23 janvier 2003 Statut Modérateur Dernière intervention 21 août 2019
6 févr. 2005 à 12:38
Un recordset prend beaucoup de ressources, il faut donc le fermer dès qu'il n'a plus de raisons d'exister. A toi de voir l'endroit qui te convient le mieux pour le fermer, si la classe qui l'englobe ne reste pas trop longtemps en mémoire alors le destructeur semble logiquement l'endroit adequat.

ciao...
BruNews, MVP VC++
0
cs_0xYg3n3 Messages postés 115 Date d'inscription mardi 1 février 2005 Statut Membre Dernière intervention 8 octobre 2007
6 févr. 2005 à 12:40
Ouais parce que le soucis c'est que l'application que je dois fournir va fonctionner 24h/24

7j / 7 (enfin presque)



C'est une appli destine au controle d'une ligne de production et au suivi de la fluidite
0
Rejoignez-nous