CDaoWorkspace, classe
Gère une session de base de données nommée et protégée par mot de passe, de la connexion à la déconnexion, pour un seul utilisateur.
Remarque
Data Access Objects (DAO) est pris en charge via Office 2013. DAO 3.6 est la version finale, et elle est considérée comme obsolète.
Syntaxe
class CDaoWorkspace : public CObject
Membres
Constructeurs publics
Nom | Description |
---|---|
CDaoWorkspace ::CDaoWorkspace | Construit un objet d’espace de travail. Ensuite, appelez Create ou Open . |
Méthodes publiques
Nom | Description |
---|---|
CDaoWorkspace ::Append | Ajoute un espace de travail nouvellement créé à la collection Workspaces du moteur de base de données. |
CDaoWorkspace ::BeginTrans | Commence une nouvelle transaction, qui s’applique à toutes les bases de données ouvertes dans l’espace de travail. |
CDaoWorkspace ::Close | Ferme l’espace de travail et tous les objets qu’il contient. Les transactions en attente sont restaurées. |
CDaoWorkspace ::CommitTrans | Termine la transaction actuelle et enregistre les modifications. |
CDaoWorkspace ::CompactDatabase | Compacte (ou doublons) une base de données. |
CDaoWorkspace ::Create | Crée un objet d’espace de travail DAO. |
CDaoWorkspace ::GetDatabaseCount | Retourne le nombre d’objets de base de données DAO dans la collection Databases de l’espace de travail. |
CDaoWorkspace ::GetDatabaseInfo | Retourne des informations sur une base de données DAO spécifiée définie dans la collection Bases de données de l’espace de travail. |
CDaoWorkspace ::GetIniPath | Retourne l’emplacement des paramètres d’initialisation du moteur de base de données Microsoft Jet dans le Registre Windows. |
CDaoWorkspace ::GetIsolateODBCTrans | Retourne une valeur qui indique si plusieurs transactions impliquant la même source de données ODBC sont isolées via plusieurs connexions forcées à la source de données. |
CDaoWorkspace ::GetLoginTimeout | Retourne le nombre de secondes avant qu’une erreur se produise lorsque l’utilisateur tente de se connecter à une base de données ODBC. |
CDaoWorkspace ::GetName | Retourne le nom défini par l’utilisateur pour l’objet d’espace de travail. |
CDaoWorkspace ::GetUserName | Retourne le nom d’utilisateur spécifié lors de la création de l’espace de travail. Il s’agit du nom du propriétaire de l’espace de travail. |
CDaoWorkspace ::GetVersion | Retourne une chaîne qui contient la version du moteur de base de données associé à l’espace de travail. |
CDaoWorkspace ::GetWorkspaceCount | Retourne le nombre d’objets d’espace de travail DAO dans la collection Workspaces du moteur de base de données. |
CDaoWorkspace ::GetWorkspaceInfo | Retourne des informations sur un espace de travail DAO spécifié défini dans la collection Workspaces du moteur de base de données. |
CDaoWorkspace ::Idle | Permet au moteur de base de données d’effectuer des tâches en arrière-plan. |
CDaoWorkspace ::IsOpen | Retourne une valeur différente de zéro si l’espace de travail est ouvert. |
CDaoWorkspace ::Open | Ouvre explicitement un objet d’espace de travail associé à l’espace de travail par défaut de DAO. |
CDaoWorkspace ::RepairDatabase | Tente de réparer une base de données endommagée. |
CDaoWorkspace ::Rollback | Termine la transaction actuelle et n’enregistre pas les modifications. |
CDaoWorkspace ::SetDefaultPassword | Définit le mot de passe que le moteur de base de données utilise lorsqu’un objet d’espace de travail est créé sans mot de passe spécifique. |
CDaoWorkspace ::SetDefaultUser | Définit le nom d’utilisateur que le moteur de base de données utilise lorsqu’un objet d’espace de travail est créé sans nom d’utilisateur spécifique. |
CDaoWorkspace ::SetIniPath | Définit l’emplacement des paramètres d’initialisation du moteur de base de données Microsoft Jet dans le Registre Windows. |
CDaoWorkspace ::SetIsolateODBCTrans | Spécifie si plusieurs transactions impliquant la même source de données ODBC sont isolées en forçant plusieurs connexions à la source de données. |
CDaoWorkspace ::SetLoginTimeout | Définit le nombre de secondes avant qu’une erreur se produise lorsque l’utilisateur tente de se connecter à une source de données ODBC. |
Membres de données publics
Nom | Description |
---|---|
CDaoWorkspace ::m_pDAOWorkspace | Pointe vers l’objet d’espace de travail DAO sous-jacent. |
Notes
Dans la plupart des cas, vous n’aurez pas besoin de plusieurs espaces de travail et vous n’aurez pas besoin de créer des objets d’espace de travail explicites ; lorsque vous ouvrez des objets de base de données et d’objet recordset, ils utilisent l’espace de travail par défaut de DAO. Toutefois, si nécessaire, vous pouvez exécuter plusieurs sessions à la fois en créant davantage d’objets d’espace de travail. Chaque objet d’espace de travail peut contenir plusieurs objets de base de données ouverts dans sa propre collection Databases. Dans MFC, un espace de travail est principalement un gestionnaire de transactions, spécifiant un ensemble de bases de données ouvertes dans le même « espace de transaction ».
Remarque
Les classes de base de données DAO sont distinctes des classes de base de données MFC basées sur Open Database Connectivity (ODBC). Tous les noms de classes de base de données DAO ont un préfixe « CDao ». En général, les classes MFC basées sur DAO sont plus capables que les classes MFC basées sur ODBC. Les classes DAO accèdent aux données via le moteur de base de données Microsoft Jet, y compris les pilotes ODBC. Ils prennent également en charge les opérations DDL (Data Definition Language), telles que la création de bases de données et l’ajout de tables et de champs via les classes, sans avoir à appeler DAO directement.
Fonctionnalités
La classe CDaoWorkspace
fournit :
Accès explicite, si nécessaire, à un espace de travail par défaut, créé en initialisant le moteur de base de données. En règle générale, vous utilisez implicitement l’espace de travail par défaut de DAO en créant des objets de jeu d’enregistrements et de base de données.
Espace de transaction dans lequel les transactions s’appliquent à toutes les bases de données ouvertes dans l’espace de travail. Vous pouvez créer d’autres espaces de travail pour gérer des espaces de transaction distincts.
Interface de nombreuses propriétés du moteur de base de données Microsoft Jet sous-jacent (consultez les fonctions membres statiques). L’ouverture ou la création d’un espace de travail ou l’appel d’une fonction membre statique avant l’ouverture ou la création initialise le moteur de base de données.
Accès à la collection Workspaces du moteur de base de données, qui stocke tous les espaces de travail actifs qui y ont été ajoutés. Vous pouvez également créer et utiliser des espaces de travail sans les ajouter à la collection.
Sécurité
MFC n’implémente pas les collections Users and Groups dans DAO, qui sont utilisées pour le contrôle de sécurité. Si vous avez besoin de ces aspects de DAO, vous devez les programmer vous-même via des appels directs aux interfaces DAO. Pour plus d’informations, consultez la Note technique 54.
Utilisation
Vous pouvez utiliser la classe CDaoWorkspace
pour :
Ouvrez explicitement l’espace de travail par défaut.
En règle générale, votre utilisation de l’espace de travail par défaut est implicite lorsque vous ouvrez de nouveaux objets CDaoDatabase ou CDaoRecordset . Mais vous devrez peut-être y accéder explicitement. Par exemple, pour accéder aux propriétés du moteur de base de données ou à la collection Workspaces. Consultez « Utilisation implicite de l’espace de travail par défaut » ci-dessous.
Créez des espaces de travail. Appelez Append si vous souhaitez les ajouter à la collection Workspaces.
Ouvrez un espace de travail existant dans la collection Workspaces.
La création d’un espace de travail qui n’existe pas déjà dans la collection Workspaces est décrite sous la fonction Créer un membre. Les objets d’espace de travail ne sont pas conservés d’une manière quelconque entre les sessions du moteur de base de données. Si votre application lie MFC de façon statique, la fin de l’application ne initialise pas le moteur de base de données. Si votre application lie dynamiquement avec MFC, le moteur de base de données n’est pas initialisé lorsque la DLL MFC est déchargée.
L’ouverture explicite de l’espace de travail par défaut ou l’ouverture d’un espace de travail existant dans la collection Workspaces est décrite sous la fonction Ouvrir un membre.
Terminez une session d’espace de travail en fermant l’espace de travail avec la fonction Fermer le membre. Close
ferme toutes les bases de données que vous n’avez pas fermées et annule les transactions non validées.
Transactions
DAO gère les transactions au niveau de l’espace de travail ; par conséquent, les transactions sur un espace de travail avec plusieurs bases de données ouvertes s’appliquent à toutes les bases de données. Par exemple, si deux bases de données ont des mises à jour non validées et que vous appelez CommitTrans, toutes les mises à jour sont validées. Si vous souhaitez limiter les transactions à une base de données unique, vous avez besoin d’un objet d’espace de travail distinct pour celui-ci.
Utilisation implicite de l’espace de travail par défaut
MFC utilise implicitement l’espace de travail par défaut de DAO dans les circonstances suivantes :
Si vous créez un
CDaoDatabase
objet mais que vous ne le faites pas par le biais d’un objet existantCDaoWorkspace
, MFC crée un objet d’espace de travail temporaire pour vous, qui correspond à l’espace de travail par défaut de DAO. Si vous le faites pour plusieurs bases de données, tous les objets de base de données sont associés à l’espace de travail par défaut. Vous pouvez accéder à l’espace de travail d’une base de données via unCDaoDatabase
membre de données.De même, si vous créez un
CDaoRecordset
objet sans fournir de pointeur vers unCDaoDatabase
objet, MFC crée un objet de base de données temporaire et, par extension, un objet d’espace de travail temporaire. Vous pouvez accéder à la base de données d’un jeu d’enregistrements et indirectement à son espace de travail via unCDaoRecordset
membre de données.
Autres opérations
D’autres opérations de base de données sont également fournies, telles que la réparation d’une base de données endommagée ou le compactage d’une base de données.
Pour plus d’informations sur l’appel de DAO directement et sur la sécurité DAO, consultez la Note technique 54.
Hiérarchie d'héritage
CDaoWorkspace
Spécifications
En-tête : afxdao.h
CDaoWorkspace ::Append
Appelez cette fonction membre après avoir appelé Create.
virtual void Append();
Notes
Append
ajoute un objet d’espace de travail nouvellement créé à la collection Workspaces du moteur de base de données. Les espaces de travail ne sont pas conservés entre les sessions du moteur de base de données ; ils sont stockés uniquement en mémoire, pas sur le disque. Vous n’avez pas besoin d’ajouter un espace de travail ; si ce n’est pas le cas, vous pouvez toujours l’utiliser.
Un espace de travail ajouté reste dans la collection Workspaces, dans un état actif, ouvert, jusqu’à ce que vous appeliez sa fonction Close member.
Pour plus d’informations, consultez la rubrique « Append Method » dans L’aide de DAO.
CDaoWorkspace ::BeginTrans
Appelez cette fonction membre pour lancer une transaction.
void BeginTrans();
Notes
Une fois que vous avez appelé BeginTrans
, les mises à jour apportées à votre structure de données ou de base de données prennent effet lorsque vous validez la transaction. Étant donné que l’espace de travail définit un espace de transaction unique, la transaction s’applique à toutes les bases de données ouvertes de l’espace de travail. Il existe deux façons d’effectuer la transaction :
Appelez la fonction membre CommitTrans pour valider la transaction et enregistrer les modifications apportées à la source de données.
Ou appelez la fonction membre Rollback pour annuler la transaction.
La fermeture de l’objet d’espace de travail ou d’un objet de base de données pendant qu’une transaction est en attente annule toutes les transactions en attente.
Si vous devez isoler les transactions sur une source de données ODBC de celles d’une autre source de données ODBC, consultez la fonction membre SetIsolateODBCTrans .
CDaoWorkspace ::CDaoWorkspace
Construit un objet CDaoWorkspace
.
CDaoWorkspace();
Notes
Après avoir construit l’objet C++, vous avez deux options :
Appelez la fonction Open member de l’objet pour ouvrir l’espace de travail par défaut ou pour ouvrir un objet existant dans la collection Workspaces.
Ou appelez la fonction Créer un membre de l’objet pour créer un objet d’espace de travail DAO. Cette opération démarre explicitement une nouvelle session d’espace de travail, à laquelle vous pouvez faire référence via l’objet
CDaoWorkspace
. Après l’appelCreate
, vous pouvez appeler Append si vous souhaitez ajouter l’espace de travail à la collection Workspaces du moteur de base de données.
Consultez la vue d’ensemble de la classe pour CDaoWorkspace pour plus d’informations sur la création explicite d’un CDaoWorkspace
objet. En règle générale, vous utilisez des espaces de travail créés implicitement lorsque vous ouvrez un objet CDaoDatabase sans spécifier d’espace de travail ou lorsque vous ouvrez un objet CDaoRecordset sans spécifier d’objet de base de données. Les objets DAO MFC créés de cette façon utilisent l’espace de travail par défaut de DAO, qui est créé une fois et réutilisé.
Pour libérer un espace de travail et ses objets contenus, appelez la fonction Membre Close de l’objet d’espace de travail.
CDaoWorkspace ::Close
Appelez cette fonction membre pour fermer l’objet d’espace de travail.
virtual void Close();
Notes
La fermeture d’un objet d’espace de travail ouvert libère l’objet DAO sous-jacent et, si l’espace de travail est membre de la collection Workspaces, le supprime de la collection. L’appel Close
est une bonne pratique de programmation.
Attention
La fermeture d’un objet d’espace de travail ferme toutes les bases de données ouvertes dans l’espace de travail. Cela entraîne la fermeture de tous les jeux d’enregistrements ouverts dans les bases de données, et toutes les modifications ou mises à jour en attente sont restaurées. Pour plus d’informations, consultez les fonctions CDaoDatabase ::Close, CDaoRecordset ::Close, CDaoTableDef ::Close et CDaoQueryDef ::Close .
Les objets d’espace de travail ne sont pas permanents ; elles n’existent que lorsque des références existent. Cela signifie que lorsque la session du moteur de base de données se termine, l’espace de travail et sa collection Databases ne sont pas conservés. Vous devez les recréer pour la prochaine session en ouvrant à nouveau votre espace de travail et vos bases de données.
Pour plus d’informations, consultez la rubrique « Fermer la méthode » dans l’aide de DAO.
CDaoWorkspace ::CommitTrans
Appelez cette fonction membre pour valider une transaction qui enregistre un groupe de modifications et de mises à jour dans une ou plusieurs bases de données de l’espace de travail.
void CommitTrans();
Notes
Une transaction se compose d’une série de modifications apportées aux données de la base de données ou à sa structure, en commençant par un appel à BeginTrans. Lorsque vous terminez la transaction, validez-la ou restaurez-la (annulez les modifications) avec restauration. Par défaut, sans transactions, les mises à jour des enregistrements sont validées immédiatement. L’appel BeginTrans
entraîne le retard des mises à jour jusqu’à ce que vous appeliez CommitTrans
.
Attention
Dans un espace de travail, les transactions sont toujours globales à l’espace de travail et ne sont pas limitées à une seule base de données ou jeu d’enregistrements. Si vous effectuez des opérations sur plusieurs jeux d’enregistrements ou bases de données au sein d’une transaction d’espace de travail, CommitTrans
valide toutes les mises à jour en attente et Rollback
restaure toutes les opérations sur ces bases de données et jeux d’enregistrements.
Lorsque vous fermez une base de données ou un espace de travail avec des transactions en attente, les transactions sont toutes restaurées.
Remarque
Ce n’est pas un mécanisme de validation en deux phases. Si une mise à jour ne parvient pas à valider, d’autres sont toujours validées.
CDaoWorkspace ::CompactDatabase
Appelez cette fonction membre pour compacter un Microsoft Jet spécifié (. Base de données MDB.
static void PASCAL CompactDatabase(
LPCTSTR lpszSrcName,
LPCTSTR lpszDestName,
LPCTSTR lpszLocale = dbLangGeneral,
int nOptions = 0);
static void PASCAL CompactDatabase(
LPCTSTR lpszSrcName,
LPCTSTR lpszDestName,
LPCTSTR lpszLocale,
int nOptions,
LPCTSTR lpszPassword);
Paramètres
lpszSrcName
Nom d’une base de données existante fermée. Il peut s’agir d’un chemin d’accès complet et d’un nom de fichier, tel que « C :\\MYDB ». MDB ». Si le nom de fichier a une extension, vous devez le spécifier. 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 ». (Les barres obliques inverses doubles sont requises dans les chaînes de chemin d’accès, car « \ » est le caractère d’échappement C++.)
lpszDestName
Chemin complet de la base de données compactée que vous créez. Vous pouvez également spécifier un chemin réseau comme avec lpszSrcName. Vous ne pouvez pas utiliser l’argument lpszDestName pour spécifier le même fichier de base de données que lpszSrcName.
lpszPassword
Mot de passe utilisé lorsque vous souhaitez compacter une base de données protégée par mot de passe. Si vous utilisez la version de ce mot de CompactDatabase
passe, vous devez fournir tous les paramètres. En outre, étant donné qu’il s’agit d’un paramètre de connexion, il nécessite une mise en forme spéciale, comme suit : ;P WD= lpszPassword. Par exemple : ;P WD="Happy ». (Le point-virgule de début est requis.)
lpszLocale
Expression de chaîne utilisée pour spécifier l’ordre de classement pour la création de lpszDestName. Si vous omettez cet argument en acceptant la valeur par défaut ( dbLangGeneral
voir ci-dessous), les paramètres régionaux de la nouvelle base de données sont identiques à l’ancienne base de données. Les valeurs possibles sont les suivantes :
dbLangGeneral
Anglais, allemand, Français, portugais, italien et espagnol modernedbLangArabic
ArabedbLangCyrillic
RussedbLangCzech
TchèquedbLangDutch
NéerlandaisdbLangGreek
GrecdbLangHebrew
HébreudbLangHungarian
HongroisdbLangIcelandic
IslandaisdbLangNordic
Langues nordiques (moteur de base de données Microsoft Jet version 1.0 uniquement)dbLangNorwdan
Norvégien et danoisdbLangPolish
PolonaisdbLangSpanish
Espagnol traditionneldbLangSwedfin
Suédois et finnoisdbLangTurkish
Turc
nOptions
Indique une ou plusieurs options pour la base de données cible, lpszDestName. Si vous omettez cet argument en acceptant la valeur par défaut, le lpszDestName a le même chiffrement et la même version que lpszSrcName. Vous pouvez combiner l’option ou dbDecrypt
l’une dbEncrypt
des options de version à l’aide de l’opérateur OR au niveau du bit. Les valeurs possibles, qui spécifient un format de base de données, et non une version du moteur de base de données, sont les suivantes :
dbEncrypt
Chiffrez la base de données lors du compactage.dbDecrypt
Déchiffrez la base de données lors du compactage.dbVersion10
Créez une base de données qui utilise le moteur de base de données Microsoft Jet version 1.0 lors du compactage.dbVersion11
Créez une base de données qui utilise le moteur de base de données Microsoft Jet version 1.1 lors du compactage.dbVersion20
Créez une base de données qui utilise le moteur de base de données Microsoft Jet version 2.0 lors du compactage.dbVersion30
Créez une base de données qui utilise le moteur de base de données Microsoft Jet version 3.0 lors du compactage.
Vous pouvez utiliser dbEncrypt
ou dbDecrypt
dans l’argument options pour spécifier s’il faut chiffrer ou déchiffrer la base de données telle qu’elle est compactée. Si vous omettez une constante de chiffrement ou si vous incluez les deux dbDecrypt
et dbEncrypt
, lpszDestName
a le même chiffrement que lpszSrcName
. Vous pouvez utiliser l’une des constantes de version dans l’argument options pour spécifier la version du format de données pour la base de données compactée. Cette constante affecte uniquement la version du format de données de lpszDestName
. Vous ne pouvez spécifier qu’une seule constante de version. Si vous omettez une constante de version, lpszDestName
elle aura la même version que lpszSrcName
. Vous ne pouvez compacter lpszDestName
qu’une version identique ou ultérieure à celle de lpszSrcName
.
Attention
Si une base de données n’est pas chiffrée, il est possible, même si vous implémentez la sécurité utilisateur/mot de passe, de lire directement le fichier de disque binaire qui constitue la base de données.
Notes
Lorsque vous modifiez des données dans une base de données, le fichier de base de données peut devenir fragmenté et utiliser plus d’espace disque que nécessaire. Régulièrement, vous devez compacter votre base de données pour défragmenter le fichier de base de données. La base de données compactée est généralement plus petite. Vous pouvez également choisir de modifier l’ordre de classement, le chiffrement ou la version du format de données pendant que vous copiez et compactez la base de données.
Attention
La CompactDatabase
fonction membre ne convertit pas correctement une base de données Microsoft Access complète d’une version à une autre. Seul le format de données est converti. Les objets définis par Microsoft Access, tels que les formulaires et les rapports, ne sont pas convertis. Toutefois, les données sont correctement converties.
Conseil
Vous pouvez également utiliser CompactDatabase
pour copier un fichier de base de données.
Pour plus d’informations sur le compactage des bases de données, consultez la rubrique « CompactDatabase Method » dans L’aide de DAO.
CDaoWorkspace ::Create
Appelez cette fonction membre pour créer un objet d’espace de travail DAO et l’associer à l’objet MFC CDaoWorkspace
.
virtual void Create(
LPCTSTR lpszName,
LPCTSTR lpszUserName,
LPCTSTR lpszPassword);
Paramètres
lpszName
Chaîne comportant jusqu’à 14 caractères qui nomme de manière unique le nouvel objet d’espace de travail. Vous devez fournir un nom. Pour plus d’informations, consultez la rubrique « Name Property » dans L’aide de DAO.
lpszUserName
Nom d’utilisateur du propriétaire de l’espace de travail. Pour connaître les conditions requises, consultez le paramètre lpszDefaultUser dans la fonction membre SetDefaultUser . Pour plus d’informations, consultez la rubrique « UserName Property » dans l’aide de DAO.
lpszPassword
Mot de passe du nouvel objet d’espace de travail. Un mot de passe peut contenir jusqu’à 14 caractères et contenir n’importe quel caractère, sauf ASCII 0 (null). Les mots de passe respectent la casse. Pour plus d’informations, consultez la rubrique « Propriété de mot de passe » dans l’aide de DAO.
Notes
Le processus de création global est le suivant :
Construisez un objet CDaoWorkspace .
Appelez la fonction membre de l’objet
Create
pour créer l’espace de travail DAO sous-jacent. Vous devez spécifier un nom d’espace de travail.Appelez éventuellement Append si vous souhaitez ajouter l’espace de travail à la collection Workspaces du moteur de base de données. Vous pouvez utiliser l’espace de travail sans l’ajouter.
Après l’appel Create
, l’objet d’espace de travail est dans un état ouvert, prêt à être utilisé. Vous n’appelez Open
pas après Create
. Vous n’appelez Create
pas si l’espace de travail existe déjà dans la collection Workspaces. Create
initialise le moteur de base de données s’il n’a pas déjà été initialisé pour votre application.
CDaoWorkspace ::GetDatabaseCount
Appelez cette fonction membre pour récupérer le nombre d’objets de base de données DAO dans la collection Databases de l’espace de travail. Il s’agit du nombre de bases de données ouvertes dans l’espace de travail.
short GetDatabaseCount();
Valeur de retour
Nombre de bases de données ouvertes dans l’espace de travail.
Notes
GetDatabaseCount
est utile si vous devez parcourir toutes les bases de données définies dans la collection Bases de données de l’espace de travail. Pour obtenir des informations sur une base de données donnée dans la collection, consultez GetDatabaseInfo. L’utilisation classique consiste à appeler GetDatabaseCount
le nombre de bases de données ouvertes, puis à utiliser ce numéro comme index de boucle pour les appels répétés à GetDatabaseInfo
.
CDaoWorkspace ::GetDatabaseInfo
Appelez cette fonction membre pour obtenir différents types d’informations sur une base de données ouverte dans l’espace de travail.
void GetDatabaseInfo(
int nIndex,
CDaoDatabaseInfo& dbinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetDatabaseInfo(
LPCTSTR lpszName,
CDaoDatabaseInfo& dbinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Paramètres
nIndex
Index de base zéro de l’objet de base de données dans la collection Databases de l’espace de travail, pour la recherche par index.
dbinfo
Référence à un objet CDaoDatabaseInfo qui retourne les informations demandées.
dwInfoOptions
Options qui spécifient les informations sur la base de données à récupérer. Les options disponibles sont répertoriées ici, ainsi que ce qu’elles entraînent le retour de la fonction :
nom AFX_DAO_PRIMARY_INFO (valeur par défaut), pouvant être mis à jour, transactions
AFX_DAO_SECONDARY_INFO Informations principales plus : Version, Ordre de classement, Délai d’expiration des requêtes
AFX_DAO_ALL_INFO informations primaires et secondaires plus : Se connecter
lpszName
Nom de l’objet de base de données, pour rechercher par nom. Le nom est une chaîne comportant jusqu’à 14 caractères qui nomme de manière unique le nouvel objet d’espace de travail.
Notes
Une version de la fonction vous permet de rechercher une base de données par index. L’autre version vous permet de rechercher une base de données par nom.
Pour obtenir une description des informations retournées dans dbinfo, consultez la structure CDaoDatabaseInfo . Cette structure comporte des membres qui correspondent aux éléments d’informations répertoriés ci-dessus dans la description de dwInfoOptions. Lorsque vous demandez des informations à un niveau, vous obtenez également des informations pour tous les niveaux antérieurs.
CDaoWorkspace ::GetIniPath
Appelez cette fonction membre pour obtenir l’emplacement des paramètres d’initialisation du moteur de base de données Microsoft Jet dans le Registre Windows.
static CString PASCAL GetIniPath();
Valeur de retour
Contenant CString
l’emplacement du Registre.
Notes
Vous pouvez utiliser l’emplacement pour obtenir des informations sur les paramètres du moteur de base de données. Les informations retournées sont en fait le nom d’une sous-clé de Registre.
Pour plus d’informations, consultez les rubriques « Propriété IniPath » et « Personnalisation des paramètres de Registre Windows pour l’accès aux données » dans l’aide de DAO.
CDaoWorkspace ::GetIsolateODBCTrans
Appelez cette fonction membre pour obtenir la valeur actuelle de la propriété DAO IsolateODBCTrans pour l’espace de travail.
BOOL GetIsolateODBCTrans();
Valeur de retour
Différent de zéro si les transactions ODBC sont isolées ; sinon 0.
Notes
Dans certains cas, vous devrez peut-être avoir plusieurs transactions simultanées en attente sur la même base de données ODBC. Pour ce faire, vous devez ouvrir un espace de travail distinct pour chaque transaction. N’oubliez pas que même si chaque espace de travail peut avoir sa propre connexion ODBC à la base de données, cela ralentit les performances du système. Étant donné que l’isolation des transactions n’est pas normalement requise, les connexions ODBC à partir de plusieurs objets d’espace de travail ouverts par le même utilisateur sont partagées par défaut.
Certains serveurs ODBC, tels que Microsoft SQL Server, n’autorisent pas les transactions simultanées sur une seule connexion. Si vous devez avoir plusieurs transactions à la fois en attente sur une telle base de données, définissez la propriété IsolateODBCTrans sur TRUE sur chaque espace de travail dès que vous l’ouvrez. Cela force une connexion ODBC distincte pour chaque espace de travail.
Pour plus d’informations, consultez la rubrique « IsolateODBCTrans Property » dans l’aide de DAO.
CDaoWorkspace ::GetLoginTimeout
Appelez cette fonction membre pour obtenir la valeur actuelle de la propriété DAO LoginTimeout pour l’espace de travail.
static short PASCAL GetLoginTimeout();
Valeur de retour
Nombre de secondes avant qu’une erreur se produise lorsque vous tentez de vous connecter à une base de données ODBC.
Notes
Cette valeur représente le nombre de secondes avant qu’une erreur se produise lorsque vous tentez de vous connecter à une base de données ODBC. Le paramètre LoginTimeout par défaut est de 20 secondes. Lorsque LoginTimeout est défini sur 0, aucun délai d’expiration ne se produit et la communication avec la source de données peut cesser de répondre.
Lorsque vous tentez de vous connecter à une base de données ODBC, telle que Microsoft SQL Server, la connexion peut échouer en raison d’erreurs réseau ou parce que le serveur n’est pas en cours d’exécution. Au lieu d’attendre la connexion par défaut de 20 secondes, vous pouvez spécifier la durée pendant laquelle le moteur de base de données attend avant qu’il génère une erreur. La connexion au serveur se produit implicitement dans le cadre de différents événements, tels que l’exécution d’une requête sur une base de données de serveur externe.
Pour plus d’informations, consultez la rubrique « LoginTimeout Property » dans L’aide de DAO.
CDaoWorkspace ::GetName
Appelez cette fonction membre pour obtenir le nom défini par l’utilisateur de l’objet d’espace de travail DAO sous-jacent à l’objet CDaoWorkspace
.
CString GetName();
Valeur de retour
Contenant CString
le nom défini par l’utilisateur de l’objet d’espace de travail DAO.
Notes
Le nom est utile pour accéder à l’objet d’espace de travail DAO dans la collection Workspaces du moteur de base de données par nom.
Pour plus d’informations, consultez la rubrique « Name Property » dans L’aide de DAO.
CDaoWorkspace ::GetUserName
Appelez cette fonction membre pour obtenir le nom du propriétaire de l’espace de travail.
CString GetUserName();
Valeur de retour
Qui CString
représente le propriétaire de l’objet d’espace de travail.
Notes
Pour obtenir ou définir les autorisations pour le propriétaire de l’espace de travail, appelez DAO directement pour vérifier le paramètre de propriété Autorisations ; cela détermine les autorisations dont dispose l’utilisateur. Pour utiliser des autorisations, vous avez besoin d’un SYSTÈME. Fichier MDA.
Pour plus d’informations sur l’appel de DAO directement, consultez la Note technique 54. Pour plus d’informations, consultez la rubrique « UserName Property » dans l’aide de DAO.
CDaoWorkspace ::GetVersion
Appelez cette fonction membre pour déterminer la version du moteur de base de données Microsoft Jet en cours d’utilisation.
static CString PASCAL GetVersion();
Valeur de retour
Qui CString
indique la version du moteur de base de données associé à l’objet.
Notes
La valeur retournée représente le numéro de version sous la forme « major.minor » ; par exemple, « 3.0 ». Le numéro de version du produit (par exemple, 3.0) se compose du numéro de version (3), d’une période et du numéro de version (0).
Pour plus d’informations, consultez la rubrique « Version Property » dans l’aide de DAO.
CDaoWorkspace ::GetWorkspaceCount
Appelez cette fonction membre pour récupérer le nombre d’objets d’espace de travail DAO dans la collection Workspaces du moteur de base de données.
short GetWorkspaceCount();
Valeur de retour
Nombre d’espaces de travail ouverts dans la collection Workspaces.
Notes
Ce nombre n’inclut aucun espace de travail ouvert non ajouté à la collection. GetWorkspaceCount
est utile si vous devez parcourir tous les espaces de travail définis dans la collection Workspaces. Pour obtenir des informations sur un espace de travail donné dans la collection, consultez GetWorkspaceInfo. L’utilisation classique consiste à appeler GetWorkspaceCount
le nombre d’espaces de travail ouverts, puis à utiliser ce numéro comme index de boucle pour les appels répétés à GetWorkspaceInfo
.
CDaoWorkspace ::GetWorkspaceInfo
Appelez cette fonction membre pour obtenir différents types d’informations sur un espace de travail ouvert dans la session.
void GetWorkspaceInfo(
int nIndex,
CDaoWorkspaceInfo& wkspcinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetWorkspaceInfo(
LPCTSTR lpszName,
CDaoWorkspaceInfo& wkspcinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Paramètres
nIndex
Index de base zéro de l’objet de base de données dans la collection Workspaces, pour la recherche par index.
wkspcinfo
Référence à un objet CDaoWorkspaceInfo qui retourne les informations demandées.
dwInfoOptions
Options qui spécifient les informations sur l’espace de travail à récupérer. Les options disponibles sont répertoriées ici, ainsi que ce qu’elles entraînent le retour de la fonction :
nom AFX_DAO_PRIMARY_INFO (par défaut)
AFX_DAO_SECONDARY_INFO Informations principales plus : Nom d’utilisateur
AFX_DAO_ALL_INFO informations primaires et secondaires plus : Isoler ODBCTrans
lpszName
Nom de l’objet espace de travail, pour rechercher par nom. Le nom est une chaîne comportant jusqu’à 14 caractères qui nomme de manière unique le nouvel objet d’espace de travail.
Notes
Pour obtenir une description des informations retournées dans wkspcinfo, consultez la structure CDaoWorkspaceInfo . Cette structure comporte des membres qui correspondent aux éléments d’informations répertoriés ci-dessus dans la description de dwInfoOptions. Lorsque vous demandez des informations à un niveau, vous obtenez également des informations pour les niveaux antérieurs.
CDaoWorkspace ::Idle
Appelez Idle
pour fournir au moteur de base de données la possibilité d’effectuer des tâches en arrière-plan qui peuvent ne pas être à jour en raison d’un traitement intense des données.
static void PASCAL Idle(int nAction = dbFreeLocks);
Paramètres
nAction
Action à entreprendre pendant le traitement inactif. Actuellement, la seule action valide est dbFreeLocks
.
Notes
Cela est souvent vrai dans les environnements multi-utilisateurs, multitâche dans lesquels il n’y a pas suffisamment de temps de traitement en arrière-plan pour conserver tous les enregistrements dans un jeu d’enregistrements actif.
Remarque
L’appel Idle
n’est pas nécessaire avec les bases de données créées avec la version 3.0 du moteur de base de données Microsoft Jet. Utilisez Idle
uniquement les bases de données créées avec des versions antérieures.
En règle générale, les verrous de lecture sont supprimés et les données des objets recordset de type dynaset local sont mises à jour uniquement lorsqu’aucune autre action (y compris les mouvements de souris) ne se produit. Si vous appelez Idle
régulièrement, vous fournissez au moteur de base de données le temps de rattraper les tâches de traitement en arrière-plan en libérant des verrous de lecture inutiles. La spécification de la constante en tant qu’argument retarde le dbFreeLocks
traitement jusqu’à ce que tous les verrous de lecture soient libérés.
Cette fonction membre n’est pas nécessaire dans les environnements mono-utilisateur, sauf si plusieurs instances d’une application s’exécutent. La Idle
fonction membre peut augmenter les performances dans un environnement multiutilisateur, car elle force le moteur de base de données à vider les données sur le disque, en libérant des verrous sur la mémoire. Vous pouvez également libérer des verrous de lecture en effectuant une partie des opérations d’une transaction.
Pour plus d’informations, consultez la rubrique « Méthode inactive » dans l’aide de DAO.
CDaoWorkspace ::IsOpen
Appelez cette fonction membre pour déterminer si l’objet CDaoWorkspace
est ouvert. Cela signifie que l’objet MFC a été initialisé par un appel à Ouvrir ou un appel à Créer.
BOOL IsOpen() const;
Valeur de retour
Différent de zéro si l’objet d’espace de travail est ouvert ; sinon 0.
Notes
Vous pouvez appeler l’une des fonctions membres d’un espace de travail dans un état ouvert.
CDaoWorkspace ::m_pDAOWorkspace
Pointeur vers l’objet d’espace de travail DAO sous-jacent.
Notes
Utilisez ce membre de données si vous avez besoin d’un accès direct à l’objet DAO sous-jacent. Vous pouvez appeler les interfaces de l’objet DAO via ce pointeur.
Pour plus d’informations sur l’accès aux objets DAO directement, consultez la Note technique 54.
CDaoWorkspace ::Open
Ouvre explicitement un objet d’espace de travail associé à l’espace de travail par défaut de DAO.
virtual void Open(LPCTSTR lpszName = NULL);
Paramètres
lpszName
Nom de l’objet d’espace de travail DAO à ouvrir : chaîne comportant jusqu’à 14 caractères qui nomme de manière unique l’espace de travail. Acceptez la valeur par défaut NULL pour ouvrir explicitement l’espace de travail par défaut. Pour connaître les exigences de nommage, consultez le paramètre lpszName pour Create. Pour plus d’informations, consultez la rubrique « Name Property » dans L’aide de DAO.
Notes
Après avoir construit un CDaoWorkspace
objet, appelez cette fonction membre pour effectuer l’une des fonctions suivantes :
Ouvrez explicitement l’espace de travail par défaut. Passez NULL pour lpszName.
Ouvrez un objet existant
CDaoWorkspace
, membre de la collection Workspaces, par nom. Transmettez un nom valide pour un objet d’espace de travail existant.
Open
place l’objet d’espace de travail dans un état ouvert et initialise également le moteur de base de données s’il n’a pas déjà été initialisé pour votre application.
Bien que de nombreuses CDaoWorkspace
fonctions membres ne puissent être appelées qu’après l’ouverture de l’espace de travail, les fonctions membres suivantes, qui fonctionnent sur le moteur de base de données, sont disponibles après la construction de l’objet C++, mais avant un appel à Open
:
CDaoWorkspace ::RepairDatabase
Appelez cette fonction membre si vous devez tenter de réparer une base de données endommagée qui accède au moteur de base de données Microsoft Jet.
static void PASCAL RepairDatabase(LPCTSTR lpszName);
Paramètres
lpszName
Chemin d’accès et nom de fichier d’un fichier de base de données du moteur Microsoft Jet existant. Si vous omettez le chemin d’accès, seul le répertoire actif est recherché. Si votre système prend en charge la convention d’affectation de noms uniforme (UNC), vous pouvez également spécifier un chemin réseau, par exemple : « \\MYSERVER\\MYSHARE\\MYDIR\\MYDB. MDB ». (Les barres obliques inverses doubles sont requises dans la chaîne de chemin d’accès, car « \ » est le caractère d’échappement C++.)
Notes
Vous devez fermer la base de données spécifiée par lpszName avant de la réparer. Dans un environnement multiutilisateur, d’autres utilisateurs ne peuvent pas ouvrir lpszName pendant que vous le réparez. Si lpszName n’est pas fermé ou n’est pas disponible pour une utilisation exclusive, une erreur se produit.
Cette fonction membre tente de réparer une base de données marquée comme endommagée par une opération d’écriture incomplète. Cela peut se produire si une application utilisant le moteur de base de données Microsoft Jet est fermée de façon inattendue en raison d’un problème de panne d’alimentation ou de matériel informatique. Si vous effectuez l’opération et appelez la fonction Membre Close ou si vous quittez l’application de façon habituelle, la base de données ne sera pas marquée comme étant peut-être endommagée.
Remarque
Après avoir réparé une base de données, il est également judicieux de le compacter à l’aide de la fonction membre CompactDatabase pour défragmenter le fichier et récupérer de l’espace disque.
Pour plus d’informations sur la réparation des bases de données, consultez la rubrique « RepairDatabase Method » dans l’aide de DAO.
CDaoWorkspace ::Rollback
Appelez cette fonction membre pour mettre fin à la transaction actuelle et restaurer toutes les bases de données de l’espace de travail dans leur condition avant le début de la transaction.
void Rollback();
Notes
Attention
Dans un objet d’espace de travail, les transactions sont toujours globales à l’espace de travail et ne sont pas limitées à une seule base de données ou jeu d’enregistrements. Si vous effectuez des opérations sur plusieurs jeux d’enregistrements ou de base de données au sein d’une transaction d’espace de travail, Rollback
restaure toutes les opérations sur toutes ces bases de données et jeux d’enregistrements.
Si vous fermez un objet d’espace de travail sans enregistrer ou restaurer les transactions en attente, les transactions sont automatiquement restaurées. Si vous appelez CommitTrans ou Rollback
sans appeler BeginTrans, une erreur se produit.
Remarque
Lorsque vous commencez une transaction, le moteur de base de données enregistre ses opérations dans un fichier conservé dans le répertoire spécifié par la variable d’environnement TEMP sur la station de travail. Si le fichier journal des transactions épuise le stockage disponible sur votre lecteur TEMP, le moteur de base de données génère une CDaoException
erreur DAO (erreur DAO 2004). À ce stade, si vous appelez CommitTrans
, un nombre indéterminé d’opérations est validé, mais les opérations non supprimées restantes sont perdues et l’opération doit être redémarrée. L’appel Rollback
libère le journal des transactions et restaure toutes les opérations dans la transaction.
CDaoWorkspace ::SetDefaultPassword
Appelez cette fonction membre pour définir le mot de passe par défaut que le moteur de base de données utilise lorsqu’un objet d’espace de travail est créé sans mot de passe spécifique.
static void PASCAL SetDefaultPassword(LPCTSTR lpszPassword);
Paramètres
lpszPassword
Mot de passe par défaut. Un mot de passe peut contenir jusqu’à 14 caractères et contenir n’importe quel caractère, sauf ASCII 0 (null). Les mots de passe respectent la casse.
Notes
Le mot de passe par défaut que vous définissez s’applique aux nouveaux espaces de travail que vous créez après l’appel. Lorsque vous créez des espaces de travail suivants, vous n’avez pas besoin de spécifier un mot de passe dans l’appel Créer .
Pour utiliser cette fonction membre :
Construisez un
CDaoWorkspace
objet, mais n’appelezCreate
pas .Appelez et, si vous le souhaitez
SetDefaultPassword
, SetDefaultUser.Appelez
Create
cet objet d’espace de travail ou les éléments suivants, sans spécifier de mot de passe.
Par défaut, la propriété DefaultUser est définie sur « admin » et la propriété DefaultPassword est définie sur une chaîne vide (« »).
Pour plus d’informations sur la sécurité, consultez la rubrique « Permissions Property » dans l’aide de DAO. Pour plus d’informations, consultez les rubriques « DefaultPassword Property » et « DefaultUser Property » dans l’aide de DAO.
CDaoWorkspace ::SetDefaultUser
Appelez cette fonction membre pour définir le nom d’utilisateur par défaut que le moteur de base de données utilise lorsqu’un objet d’espace de travail est créé sans nom d’utilisateur spécifique.
static void PASCAL SetDefaultUser(LPCTSTR lpszDefaultUser);
Paramètres
lpszDefaultUser
Nom d’utilisateur par défaut. Un nom d’utilisateur peut être de 1 à 20 caractères longs et inclure des caractères alphabétiques, caractères accentués, nombres, espaces et symboles à l’exception de : "
(guillemets), /
(barre oblique vers l’avant), \
(barre oblique inverse), (crochets), [ ]
(deux-points), :
(canal), <
|
(signe inférieur à), >
(signe supérieur à), +
(signe plus), (signe égal), =
;
(point-virgule), (virgule), ,
(point d’interrogation), *
(astérisque), espaces de début et caractères de contrôle (ASCII 00 à ASCII 31). Pour plus d’informations, consultez la rubrique « UserName Property » dans l’aide de DAO.
Notes
Le nom d’utilisateur par défaut que vous définissez s’applique aux nouveaux espaces de travail que vous créez après l’appel. Lorsque vous créez des espaces de travail suivants, vous n’avez pas besoin de spécifier un nom d’utilisateur dans l’appel Créer .
Pour utiliser cette fonction membre :
Construisez un
CDaoWorkspace
objet, mais n’appelezCreate
pas .Appelez et, si vous le souhaitez
SetDefaultUser
, SetDefaultPassword.Appelez
Create
cet objet d’espace de travail ou les éléments suivants, sans spécifier de nom d’utilisateur.
Par défaut, la propriété DefaultUser est définie sur « admin » et la propriété DefaultPassword est définie sur une chaîne vide (« »).
Pour plus d’informations, consultez les rubriques « DefaultUser Property » et « DefaultPassword Property » dans l’aide de DAO.
CDaoWorkspace ::SetIniPath
Appelez cette fonction membre pour spécifier l’emplacement des paramètres de Registre Windows pour le moteur de base de données Microsoft Jet.
static void PASCAL SetIniPath(LPCTSTR lpszRegistrySubKey);
Paramètres
lpszRegistrySubkey
Chaîne contenant le nom d’une sous-clé de Registre Windows pour l’emplacement des paramètres ou paramètres du moteur de base de données Microsoft Jet nécessaires pour les bases de données ISAM installables.
Notes
Appelez SetIniPath
uniquement si vous devez spécifier des paramètres spéciaux. Pour plus d’informations, consultez la rubrique « IniPath Property » dans L’aide de DAO.
Remarque
Appelez SetIniPath
pendant l’installation de l’application, et non lorsque l’application s’exécute. SetIniPath
doit être appelé avant d’ouvrir des espaces de travail, des bases de données ou des jeux d’enregistrements ; sinon, MFC lève une exception.
Vous pouvez utiliser ce mécanisme pour configurer le moteur de base de données avec les paramètres de Registre fournis par l’utilisateur. L’étendue de cet attribut est limitée à votre application et ne peut pas être modifiée sans redémarrer votre application.
CDaoWorkspace ::SetIsolateODBCTrans
Appelez cette fonction membre pour définir la valeur de la propriété DAO IsolateODBCTrans pour l’espace de travail.
void SetIsolateODBCTrans(BOOL bIsolateODBCTrans);
Paramètres
bIsolateODBCTrans
Passez TRUE si vous souhaitez commencer à isoler les transactions ODBC. Transmettez FALSE si vous souhaitez arrêter l’isolation des transactions ODBC.
Notes
Dans certains cas, vous devrez peut-être avoir plusieurs transactions simultanées en attente sur la même base de données ODBC. Pour ce faire, vous devez ouvrir un espace de travail distinct pour chaque transaction. Bien que chaque espace de travail puisse avoir sa propre connexion ODBC à la base de données, cela ralentit les performances du système. Étant donné que l’isolation des transactions n’est pas normalement requise, les connexions ODBC à partir de plusieurs objets d’espace de travail ouverts par le même utilisateur sont partagées par défaut.
Certains serveurs ODBC, tels que Microsoft SQL Server, n’autorisent pas les transactions simultanées sur une seule connexion. Si vous devez avoir plusieurs transactions à la fois en attente sur une telle base de données, définissez la propriété IsolateODBCTrans sur TRUE sur chaque espace de travail dès que vous l’ouvrez. Cela force une connexion ODBC distincte pour chaque espace de travail.
CDaoWorkspace ::SetLoginTimeout
Appelez cette fonction membre pour définir la valeur de la propriété DAO LoginTimeout pour l’espace de travail.
static void PASCAL SetLoginTimeout(short nSeconds);
Paramètres
nSeconds
Nombre de secondes avant qu’une erreur se produise lorsque vous tentez de vous connecter à une base de données ODBC.
Notes
Cette valeur représente le nombre de secondes avant qu’une erreur se produise lorsque vous tentez de vous connecter à une base de données ODBC. Le paramètre LoginTimeout par défaut est de 20 secondes. Lorsque LoginTimeout est défini sur 0, aucun délai d’expiration ne se produit et la communication avec la source de données peut cesser de répondre.
Lorsque vous tentez de vous connecter à une base de données ODBC, telle que Microsoft SQL Server, la connexion peut échouer en raison d’erreurs réseau ou parce que le serveur n’est pas en cours d’exécution. Au lieu d’attendre la connexion par défaut de 20 secondes, vous pouvez spécifier la durée pendant laquelle le moteur de base de données attend avant qu’il génère une erreur. La connexion au serveur se produit implicitement dans le cadre d’un certain nombre d’événements différents, tels que l’exécution d’une requête sur une base de données de serveur externe. La valeur du délai d’expiration est déterminée par le paramètre actuel de la propriété LoginTimeout.
Pour plus d’informations, consultez la rubrique « LoginTimeout Property » dans L’aide de DAO.
Voir aussi
CObject
Classe
Graphique hiérarchique
CDaoDatabase
Classe
CDaoRecordset
Classe
CDaoTableDef
Classe
CDaoQueryDef
Classe
CDaoException
Classe