Partager via


CDatabase::Open

 

Appelez la fonction membre pour initialiser un objet nouvellement construit d' CDatabase .

Syntaxe

      virtual BOOL Open(
   LPCTSTR lpszDSN,
   BOOL bExclusive = FALSE,
   BOOL bReadOnly = FALSE,
   LPCTSTR lpszConnect = _T("ODBC;"),
   BOOL bUseCursorLib = TRUE 
);

Paramètres

  • lpszDSN
    Spécifie un nom de source de données — un nom enregistré avec ODBC via le programme d'administration ODBC.  Si la valeur d'un DSN est spécifiée dans lpszConnect (sous la forme « DSN=<data-source>"), elle ne doit pas être spécifiée de nouveau dans lpszDSN.  Dans ce cas, lpszDSN doit être NULL.  Sinon, vous pouvez passer NULL si vous souhaitez présenter l'utilisateur une boîte de dialogue de source de données dans laquelle l'utilisateur peut sélectionner une source de données.  Pour plus d'informations, consultez les notes.  

  • bExclusive
    Non pris en charge dans cette version de la bibliothèque de classes.  Actuellement, une assertion échoue si ce paramètre est TRUE.  La source de données est toujours ouverte comme partagé (non exclusif).  

  • bReadOnly
    TRUE si vous prévoyez la connexion comme étant en lecture seule et pour interdire les mises à jour à la source de données.  Tous les recordsets dépendants héritent cet attribut.  La valeur par défaut est FALSE.  

  • lpszConnect
    Spécifie une chaîne de connexion.  La chaîne de connexion concatène les informations, éventuellement inclure un nom de source de données, un ID d'utilisateur valide sur la source de données, une chaîne d'identification utilisateur (mot de passe, si la source de données requiert un), et d'autres informations.  La chaîne de connexion entière doit être précédée par la chaîne « ODBC ;  » (majuscule ou minuscule).  « ODBC ;  » chaîne est utilisée pour indiquer que la connexion à une source de données ODBC ; c'est pour la compatibilité descendante lorsque les versions ultérieures de la bibliothèque de classes peuvent prendre en charge des sources de données non ODBC.  

  • bUseCursorLib
    TRUE si vous souhaitez que la DLL de la bibliothèque de curseurs ODBC à charger.  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.  La valeur par défaut est TRUE.  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.  

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.

Notes

Appeler la fonction membre d' OpenEx est la meilleure façon de se connecter à une source de données et d'initialiser votre objet de base de données.

Si les paramètres dans l'appel de Ouvrir ne contiennent 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.  Lorsque vous appelez Ouvrir, votre chaîne de connexion, lpszConnect, 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 Ouvrir pour obtenir des informations à l'utilisateur, telles qu'un mot de passe, puis ajouter ces informations à la chaîne de connexion que vous passez à Ouvrir.  Vous pouvez enregistrer la chaîne de connexion que vous passez vous pouvez la réutiliser la prochaine fois que vos appels Ouvrir 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 5 dans SDK Windows.  

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, Ouvrir lève CDBException.  

Exemple

// m_dbCust is a CDatabase object embedded in a CDocument class

if (bDefault)
{
   // Connect the object to a data source (no password)
   // the ODBC connection dialog box will always remain hidden
   m_dbCust.Open(_T("MFC_ODBCTest"), FALSE, FALSE, _T("ODBC;UID=JOES"));
}
else
{
   // ...Or, query the user for all connection information
   m_dbCust.Open(NULL);
}

Configuration requise

Header: afxdb.h

Voir aussi

CDatabase Class
Graphique hiérarchique
CDatabase::OpenEx
CDatabase::CDatabase
CDatabase::Close
CDBException Class
CRecordset::Open