CDatabase::OpenEx
Appelez la fonction membre pour initialiser un objet nouvellement construit d' CDatabase .
virtual BOOL OpenEx(
LPCTSTR lpszConnectString,
DWORD dwOptions = 0
);
Paramètres
lpszConnectString
Spécifie une chaîne de connexion ODBC.Cela inclut le nom de source de données ainsi que d'autres informations facultatives, par exemple un ID d'utilisateur et un mot de passe.Par exemple, « DSN=SQLServer_Source ; UID=SA ; PWD=abc123 » est une chaîne de connexion possible.Notez que si vous passez NULL pour lpszConnectString, une boîte de dialogue de source de données invite l'utilisateur à sélectionner une source de données.dwOptions
Un masque de bits qui spécifie une combinaison de valeurs suivantes.La valeur par défaut est 0, ce qui signifie que la base de données est ouverte comme partagé avec un accès en écriture, la DLL de la bibliothèque de curseurs ODBC ne sera pas chargée, et la boîte de dialogue de connexion ODBC affiche uniquement s'il n'y a pas assez d'informations pour établir la connexion.CDatabase::openExclusive non pris en charge dans cette version de la bibliothèque de classes.Une source de données est toujours ouverte comme partagé (non exclusif).Actuellement, une assertion échoue si vous spécifiez cette option.
CDatabase::openReadOnly ouvrez la source de données en lecture seule.
Chargement deCDatabase::useCursorLib la DLL de la bibliothèque de curseurs ODBC.La bibliothèque de curseurs masque certaines fonctionnalités du pilote ODBC sous-jacent, empêchant ainsi efficacement l'utilisation des feuilles de réponse dynamiques (si le pilote ils).Les seuls curseurs pris en charge si la bibliothèque de curseurs est chargée sont des instantanés statiques et les curseurs en avant seulement.Si vous envisagez de créer un objet recordset directement d' CRecordset sans dériver de celle-ci, vous ne devez pas charger la bibliothèque de curseurs.
CDatabase::noOdbcDialog n'affichent pas la boîte de dialogue de connexion ODBC, que assez d'informations de connexion sont fournies.
DeCDatabase::forceOdbcDialog affichage toujours la boîte de dialogue de connexion ODBC.
Valeur de retour
Une valeur différente de zéro si le rapport est correctement généré ; sinon 0 si l'utilisateur choisit l'annulation une fois entré une boîte de dialogue demandant plus d'informations de connexion.Dans tous les autres cas, l'infrastructure lève une exception.
Notes
Votre objet de base de données doit être initialisé avant de pouvoir l'utiliser pour construire un objet recordset.
Si le paramètre d' lpszConnectString dans l'appel d' OpenEx ne contient pas suffisamment d'informations pour établir la connexion, le pilote ODBC ouvre une boîte de dialogue pour obtenir les informations nécessaires de l'utilisateur, si vous n'avez pas défini CDatabase::noOdbcDialog ou CDatabase::forceOdbcDialog dans le paramètre d' dwOptions .Lorsque vous appelez OpenEx, votre chaîne de connexion, lpszConnectString, est stockée en privé dans l'objet d' CDatabase et est disponible en appelant la fonction membre de GetConnect .
Si vous le souhaitez, vous pouvez ouvrir votre propre boîte de dialogue avant d'appeler OpenEx pour obtenir des informations à l'utilisateur, telles qu'un mot de passe, puis ajouter ces informations à la chaîne de connexion que vous passez à OpenEx.Vous pouvez enregistrer la chaîne de connexion que vous passez vous pouvez la réutiliser la prochaine fois que vos appels OpenEx d'application à un objet d' CDatabase .
Vous pouvez également utiliser la chaîne de connexion pour plusieurs niveaux d'autorisation de connexion (chacune d'un autre objet d' CDatabase ) ou fournir d'autres informations spécifiques à la source de données.Pour plus d'informations sur les chaînes de connexion, consultez le chapitre 6 dans la documentation de référence du programmeur ODBC.
Il est possible pour une tentative de connexion l'heure si, par exemple, l'hôte de système de gestion de base de données est pas disponible.Si la tentative de connexion échoue, OpenEx lève CDBException.
Exemple
// m_dbCust is a CDatabase object embedded in a CDocument class.
// Connect the object to a read-only data source where
// the ODBC connection dialog box will always remain hidden
m_dbCust.OpenEx(_T("DSN=MFC_ODBCTest;UID=JOES"),
CDatabase::openReadOnly | CDatabase::noOdbcDialog);
Configuration requise
Header: afxdb.h