Probleme deconnexion

Signaler
Messages postés
115
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
8 octobre 2007
-
Messages postés
115
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
8 octobre 2007
-
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

Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
Messages postés
115
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
8 octobre 2007

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
Messages postés
21042
Date d'inscription
jeudi 23 janvier 2003
Statut
Modérateur
Dernière intervention
21 août 2019
27
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++
Messages postés
115
Date d'inscription
mardi 1 février 2005
Statut
Membre
Dernière intervention
8 octobre 2007

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