CDaoDatabase::Open
Vous devez appeler cette fonction membre pour initialiser un objet nouvellement construit d' CDaoDatabase qui représente une base de données existante.
virtual void Open(
LPCTSTR lpszName,
BOOL bExclusive = FALSE,
BOOL bReadOnly = FALSE,
LPCTSTR lpszConnect = _T(
"" )
);
Paramètres
lpszName
Une expression de chaîne qui est le nom d'une base de données existante Microsoft Jet (.MDB).Si le nom du fichier porte une extension, il est requis.Si votre réseau prend en charge la convention d'affectation de noms uniforme (UNC), vous pouvez également spécifier un chemin d'accès réseau, tel que « \\\\MYSERVER\\MYSHARE\\MYDIR\\MYDB.MDB ».(Doubles barres obliques inverses sont nécessaires dans les littéraux de chaîne car « caractère d'échappement \" is the C ++.)Certaines considérations s'appliquent lorsque vous utilisez lpszName.s'il :
Fait référence à une base de données qui est déjà ouvert pour un accès exclusif par un autre utilisateur MFC, lève une exception de type CDaoException.Interceptez qu'exception pour que votre utilisateur de savoir que la base de données est pas disponible.
Est une chaîne vide ("") et le lpszConnect est « ODBC ; », une boîte de dialogue répertoriant tous les noms stockés de source de données ODBC est affichée afin que l'utilisateur peut sélectionner une base de données.Vous devez éviter les connexions directes aux sources de données ODBC ; utilisez une table jointe à la place.
Sinon ne fait pas référence à une base de données existante ou le nom valide de source de données ODBC, MFC lève une exception de type CDaoException.
[!REMARQUE]
Pour plus d'informations sur les codes d'erreur DAO, consultez le fichier de DAOERR.H.Pour des informations connexes, consultez la rubrique « erreurs récupérables d'accès aux données » dans l'aide de DAO.
bExclusive
Valeur booléenne qui est TRUE si la base de données doit être ouvert pour un accès (non partagé) exclusif et le FALSE si la base de données doit être ouvert pour un accès partagé.Si vous omettez cet argument, la base de données est ouvert pour un accès partagé.bReadOnly
Valeur booléenne qui est TRUE si la base de données doit être ouvert pour un accès en lecture seule et le FALSE si la base de données doit être ouvert pour un accès en lecture/écriture.Si vous omettez cet argument, la base de données est ouvert pour un accès en lecture/écriture.Tous les recordsets dépendants héritent cet attribut.lpszConnect
Une expression de chaîne celle utilisée pour ouvrir la base de données.Cette chaîne constitue ODBC connectent des arguments.Vous devez fournir les arguments exclusifs et en lecture seule pour fournir une chaîne source.Si la base de données est une base de données Microsoft Jet (.MDB), cette chaîne est vide ("").La syntaxe pour la valeur par défaut ) _T("") fournit la portabilité pour Unicode ainsi que des builds ANSI de votre application.
Notes
Ouvrir associe la base de données avec l'objet sous-jacent DAO.Vous ne pouvez pas utiliser l'objet de base de données vers le recordset d'élément, au tabledef, ou aux objets de querydef jusqu'à ce qu'il soit initialisé.Ouvrir ajoute l'objet de base de données à la collection associée des bases de données de l'espace de travail.
Utilisez les paramètres comme suit :
Si vous ouvrez une base de données Microsoft Jet (.MDB), utilisez les paramètres d' lpszName et passez une chaîne vide pour le paramètre d' lpszConnect ou passez une chaîne de mot de passe au format « ; PWD=password » si la base de données est protégée par mot de passe (les bases de données .MDB uniquement).
Si vous ouvrez une source de données ODBC, passez une chaîne de connexion ODBC valide dans lpszConnect et une chaîne vide dans lpszName.
Pour des informations connexes, consultez la rubrique « méthode d'OpenDatabase » dans l'aide de DAO.
[!REMARQUE]
Pour de meilleures performances lorsque l'accès aux bases de données externes, y compris les bases de données de méthode d'accès séquentiel indexé et des sources de données ODBC, il est recommandé que vous liez les tables de base de données externes à une base de données du moteur Microsoft Jet (.MDB) plutôt que de vous connecter directement à la source de données.
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 une exception de type CDaoException.
Les notes restantes s'appliquent uniquement aux bases de données ODBC :
Si la base de données est une base de données ODBC et les paramètres de votre 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é 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 (peut-être dans le Registre Windows) vous pouvez la réutiliser la prochaine fois que vos appels Ouvrir d'application à un objet d' CDaoDatabase .
Vous pouvez également utiliser la chaîne de connexion pour plusieurs niveaux d'autorisation de connexion (chacune d'un autre objet d' CDaoDatabase ) ou fournir d'autres informations spécifiques à la base de données.
Configuration requise
Header: afxdao.h