Notes
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de vous connecter ou de modifier des répertoires.
L’accès à cette page nécessite une autorisation. Vous pouvez essayer de modifier des répertoires.
Cet article vous aide à résoudre le problème où la méthode de la CDatabase::GetConnect()
bibliothèque MFC (Microsoft Foundation Class) retourne toujours une chaîne vide au lieu des informations de connexion de base de données actives dans Visual Studio 2012.
Version de produit d’origine : Visual Studio Ultimate 2012, Visual Studio Premium 2012
Numéro de la base de connaissances d’origine : 2915724
Dans Visual Studio 2012, la méthode de la CDatabase::GetConnect()
bibliothèque MFC retourne toujours une chaîne vide au lieu des informations de connexion de base de données actives.
Ce problème se produit également dans Visual Studio 2010 si un correctif logiciel plus récent que le correctif logiciel 2607393 est installé.
Ce problème se produit également dans Visual Studio 2008 si un correctif logiciel plus récent que le correctif logiciel 2607389 est installé.
Pour des raisons de sécurité, le comportement de la CDatabase
classe a été modifié afin que la GetConnect
méthode retourne une chaîne vide.
Pour résoudre ce problème, appliquez l’une des méthodes suivantes :
Modifiez votre code pour vous protéger contre la condition de chaîne vide. Pour ce faire, créez une classe dérivée de CDatabase
, puis utilisez cette classe comme classe de base de données dans votre application.
Dans cette classe dérivée, remplacez la OpenEx
méthode. Dans le remplacement, appelez d’abord la CDatabase
version de OpenEx
pour vous assurer que le chaîne de connexion est obtenu à partir de l’appel à SQLDriverConnect
. Ensuite, déchiffrez et stockez la chaîne de connexion dans un CString
objet que vous pouvez référencer ultérieurement.
Utilisez une version plus récente de MFC. Par exemple, utilisez la version incluse dans Visual Studio 2013.
Dans Visual Studio 2013, la GetConnect()
méthode retourne un CString
. Lorsque la méthode est appelée, le chaîne de connexion chiffré est déchiffré et retourné à l’appelant, qui est ensuite responsable de la suppression de la mémoire pour la sécurité.