CDaoTableDef, classe
Représente la définition stockée d'une table de base ou d'une table attachée.
Remarque
DAO est pris en charge par le biais d’Office 2013. DAO 3.6 est la version finale, et elle est considérée comme obsolète.
Syntaxe
class CDaoTableDef : public CObject
Membres
Constructeurs publics
Nom | Description |
---|---|
CDaoTableDef ::CDaoTableDef | Construit un objet CDaoTableDef . |
Méthodes publiques
Nom | Description |
---|---|
CDaoTableDef ::Append | Ajoute une nouvelle table à la base de données. |
CDaoTableDef ::CanUpdate | Retourne une valeur différente de zéro si la table peut être mise à jour (vous pouvez modifier la définition des champs ou les propriétés de la table). |
CDaoTableDef ::Close | Ferme un tabledef ouvert. |
CDaoTableDef ::Create | Crée une table qui peut être ajoutée à la base de données à l’aide d’Append. |
CDaoTableDef ::CreateField | Appelé pour créer un champ pour une table. |
CDaoTableDef ::CreateIndex | Appelé pour créer un index pour une table. |
CDaoTableDef ::D eleteField | Appelé pour supprimer un champ d’une table. |
CDaoTableDef ::D eleteIndex | Appelé pour supprimer un index d’une table. |
CDaoTableDef ::GetAttributes | Retourne une valeur qui indique une ou plusieurs caractéristiques d’un CDaoTableDef objet. |
CDaoTableDef ::GetConnect | Retourne une valeur qui fournit des informations sur la source d’une table. |
CDaoTableDef ::GetDateCreated | Retourne la date et l’heure de création de la table de base sous-jacente d’un CDaoTableDef objet. |
CDaoTableDef ::GetDateLastUpdated | Retourne la date et l’heure de la modification la plus récente apportée à la conception de la table de base. |
CDaoTableDef ::GetFieldCount | Retourne une valeur qui représente le nombre de champs dans la table. |
CDaoTableDef ::GetFieldInfo | Retourne des types d’informations spécifiques sur les champs de la table. |
CDaoTableDef ::GetIndexCount | Retourne le nombre d’index de la table. |
CDaoTableDef ::GetIndexInfo | Retourne des types d’informations spécifiques sur les index de la table. |
CDaoTableDef ::GetName | Retourne le nom défini par l’utilisateur de la table. |
CDaoTableDef ::GetRecordCount | Retourne le nombre d’enregistrements dans la table. |
CDaoTableDef ::GetSourceTableName | Retourne une valeur qui spécifie le nom de la table jointe dans la base de données source. |
CDaoTableDef ::GetValidationRule | Retourne une valeur qui valide les données d’un champ tel qu’elles sont modifiées ou ajoutées à une table. |
CDaoTableDef ::GetValidationText | Retourne une valeur qui spécifie le texte du message affiché par votre application si la valeur d’un objet Field ne répond pas à la règle de validation spécifiée. |
CDaoTableDef ::IsOpen | Retourne une valeur différente de zéro si la table est ouverte. |
CDaoTableDef ::Open | Ouvre un tabledef existant stocké dans la collection TableDef de la base de données. |
CDaoTableDef ::RefreshLink | Met à jour les informations de connexion d’une table jointe. |
CDaoTableDef ::SetAttributes | Définit une valeur qui indique une ou plusieurs caractéristiques d’un CDaoTableDef objet. |
CDaoTableDef ::SetConnect | Définit une valeur qui fournit des informations sur la source d’une table. |
CDaoTableDef ::SetName | Définit le nom de la table. |
CDaoTableDef ::SetSourceTableName | Définit une valeur qui spécifie le nom d’une table jointe dans la base de données source. |
CDaoTableDef ::SetValidationRule | Définit une valeur qui valide les données d’un champ à mesure qu’elles sont modifiées ou ajoutées à une table. |
CDaoTableDef ::SetValidationText | Définit une valeur qui spécifie le texte du message affiché par votre application si la valeur d’un objet Field ne répond pas à la règle de validation spécifiée. |
Membres de données publics
Nom | Description |
---|---|
CDaoTableDef ::m_pDAOTableDef | Pointeur vers l’interface DAO sous-jacente à l’objet tabledef. |
CDaoTableDef ::m_pDatabase | Base de données source pour cette table. |
Notes
Chaque objet de base de données DAO gère une collection, appelée TableDefs, qui contient tous les objets tabledef DAO enregistrés.
Vous manipulez une définition de table à l’aide d’un CDaoTableDef
objet. Par exemple, vous pouvez :
Examinez la structure de champ et d’index d’une table locale, attachée ou externe dans une base de données.
Appelez les fonctions membres et
SetSourceTableName
lesSetConnect
fonctions membres pour les tables jointes et utilisez laRefreshLink
fonction membre pour mettre à jour les connexions aux tables jointes.Appelez la
CanUpdate
fonction membre pour déterminer si vous pouvez modifier les définitions de champ dans la table.Obtenez ou définissez des conditions de validation à l’aide des
GetValidationRule
SetValidationRule
GetValidationText
SetValidationText
fonctions et et membres.Utilisez la
Open
fonction membre pour créer un objet de type table, dynaset ou instantanéCDaoRecordset
.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 le préfixe « CDao ». Vous pouvez toujours accéder aux sources de données ODBC avec les classes DAO ; les classes DAO offrent généralement des fonctionnalités supérieures, car elles sont spécifiques au moteur de base de données Microsoft Jet.
Pour utiliser des objets tabledef pour travailler avec une table existante ou pour créer une table
Dans tous les cas, commencez par construire un
CDaoTableDef
objet, en fournissant un pointeur vers un objet CDaoDatabase auquel appartient la table.Procédez ensuite comme suit, en fonction de ce que vous souhaitez :
Pour utiliser une table enregistrée existante, appelez la fonction Membre Open de l’objet Tabledef, en fournissant le nom de la table enregistrée.
Pour créer une table, appelez la fonction Créer un membre de l’objet tabledef, en fournissant le nom de la table. Appelez CreateField et CreateIndex pour ajouter des champs et des index à la table.
Appelez Append pour enregistrer la table en l’ajoutant à la collection TableDefs de la base de données.
Create
place le tabledef dans un état ouvert. Par conséquent, après l’appelCreate
, vous n’appelezOpen
pas .Conseil
Le moyen le plus simple de créer des tables enregistrées consiste à les créer et à les stocker dans votre base de données à l’aide de Microsoft Access. Vous pouvez ensuite les ouvrir et les utiliser dans votre code MFC.
Pour utiliser l’objet tabledef que vous avez ouvert ou créé, créez et ouvrez un CDaoRecordset
objet, en spécifiant le nom du tabledef avec une dbOpenTable
valeur dans le paramètre nOpenType .
Pour utiliser un objet tabledef pour créer un CDaoRecordset
objet, vous créez ou ouvrez généralement un tabledef comme décrit ci-dessus, puis construisez un objet recordset, en passant un pointeur vers votre objet tabledef lorsque vous appelez CDaoRecordset ::Open. Le tabledef que vous passez doit être dans un état ouvert. Pour plus d’informations, consultez la classe CDaoRecordset.
Lorsque vous avez terminé d’utiliser un objet tabledef, appelez sa fonction membre Close , puis détruisez l’objet tabledef.
Hiérarchie d'héritage
CDaoTableDef
Spécifications
En-tête : afxdao.h
CDaoTableDef ::Append
Appelez cette fonction membre après avoir appelé Create pour créer un objet tabledef pour enregistrer le tabledef dans la base de données.
virtual void Append();
Notes
La fonction ajoute l’objet à la collection TableDefs de la base de données. Vous pouvez utiliser le tabledef comme objet temporaire lors de sa définition en l’ajoutant, mais si vous souhaitez l’enregistrer et l’utiliser, vous devez appeler Append
.
Remarque
Si vous tentez d’ajouter un tabledef sans nom (contenant une chaîne null ou vide), MFC lève une exception.
Pour plus d’informations, consultez la rubrique « Append Method » dans L’aide de DAO.
CDaoTableDef ::CanUpdate
Appelez cette fonction membre pour déterminer si la définition de la table sous-jacente à un CDaoTableDef
objet peut être modifiée.
BOOL CanUpdate();
Valeur de retour
Différent de zéro si la structure de table (schéma) peut être modifiée (ajouter ou supprimer des champs et des index), sinon 0.
Notes
Par défaut, une table nouvellement créée sous-jacente à un CDaoTableDef
objet peut être mise à jour et une table jointe sous-jacente à un CDaoTableDef
objet ne peut pas être mise à jour. Un CDaoTableDef
objet peut être pouvant être mis à jour, même si le jeu d’enregistrements résultant n’est pas pouvant être mis à jour.
Pour plus d’informations, consultez la rubrique « Updatable Property » dans L’aide de DAO.
CDaoTableDef ::CDaoTableDef
Construit un objet CDaoTableDef
.
CDaoTableDef(CDaoDatabase* pDatabase);
Paramètres
pDatabase
Pointeur vers un objet CDaoDatabase .
Notes
Après avoir construit l’objet, vous devez appeler la fonction Créer ou Ouvrir un membre. Lorsque vous avez terminé avec l’objet, vous devez appeler sa fonction membre Close et détruire l’objet CDaoTableDef
.
CDaoTableDef ::Close
Appelez cette fonction membre pour fermer et libérer l’objet tabledef.
virtual void Close();
Notes
En règle générale, après l’appel Close
, vous supprimez l’objet tabledef s’il a été alloué avec new
.
Vous pouvez appeler à nouveau Open après l’appel Close
. Cela vous permet de réutiliser l’objet tabledef.
Pour plus d’informations, consultez la rubrique « Fermer la méthode » dans l’aide de DAO.
CDaoTableDef ::Create
Appelez cette fonction membre pour créer une table enregistrée.
virtual void Create(
LPCTSTR lpszName,
long lAttributes = 0,
LPCTSTR lpszSrcTable = NULL,
LPCTSTR lpszConnect = NULL);
Paramètres
lpszName
Pointeur vers une chaîne contenant le nom de la table.
lAttributes
Valeur correspondant aux caractéristiques de la table représentée par l’objet tabledef. Vous pouvez utiliser l’or au niveau du bit pour combiner l’une des constantes suivantes :
Constant | Description |
---|---|
dbAttachExclusive |
Pour les bases de données qui utilisent le moteur de base de données Microsoft Jet, indique que la table est une table jointe ouverte pour une utilisation exclusive. |
dbAttachSavePWD |
Pour les bases de données qui utilisent le moteur de base de données Microsoft Jet, indique que l’ID utilisateur et le mot de passe de la table jointe sont enregistrés avec les informations de connexion. |
dbSystemObject |
Indique que la table est une table système fournie par le moteur de base de données Microsoft Jet. |
dbHiddenObject |
Indique que la table est une table masquée fournie par le moteur de base de données Microsoft Jet. |
lpszSrcTable
Pointeur vers une chaîne contenant le nom de la table source. Par défaut, cette valeur est initialisée en tant que NULL.
lpszConnect
Pointeur vers une chaîne contenant la chaîne de connexion par défaut. Par défaut, cette valeur est initialisée en tant que NULL.
Notes
Une fois que vous avez nommé le tabledef, vous pouvez ensuite appeler Append pour enregistrer le tabledef dans la collection TableDefs de la base de données. Après l’appel Append
, tabledef est dans un état ouvert et vous pouvez l’utiliser pour créer un objet CDaoRecordset .
Pour plus d’informations, consultez la rubrique « CreateTableDef Method » dans L’aide de DAO.
CDaoTableDef ::CreateField
Appelez cette fonction membre pour ajouter un champ à la table.
void CreateField(
LPCTSTR lpszName,
short nType,
long lSize,
long lAttributes = 0);
void CreateField(CDaoFieldInfo& fieldinfo);
Paramètres
lpszName
Pointeur vers une expression de chaîne spécifiant le nom de ce champ.
nType
Valeur indiquant le type de données du champ. Le paramètre peut être l’une des valeurs suivantes :
Type | Taille (en octets) | Description |
---|---|---|
dbBoolean |
1 octet | BOOL |
dbByte |
BYTE | |
dbInteger |
2 | int |
dbLong |
4 | long |
dbCurrency |
8 | Currency ( COleCurrency) |
dbSingle |
4 | virgule flottante |
dbDouble |
8 | double |
dbDate |
8 | Date/heure ( COleDateTime) |
dbText |
1 - 255 | Text ( CString) |
dbLongBinary |
0 | Long Binary (OBJET OLE), CLongBinary ou CByteArray |
dbMemo |
0 | Mémo ( CString) |
lSize
Valeur qui indique la taille maximale, en octets, d’un champ qui contient du texte ou la taille fixe d’un champ qui contient du texte ou des valeurs numériques. Le paramètre lSize est ignoré pour tous les champs de texte.
lAttributes
Valeur correspondant aux caractéristiques du champ et qui peuvent être combinées à l’aide d’une or au niveau du bit.
Constant | Description |
---|---|
dbFixedField |
La taille du champ est fixe (valeur par défaut pour les champs numériques). |
dbVariableField |
La taille du champ est variable (champs de texte uniquement). |
dbAutoIncrField |
La valeur du champ pour les nouveaux enregistrements est automatiquement incrémentée vers un entier long unique qui ne peut pas être modifié. Uniquement pris en charge pour les tables de base de données Microsoft Jet. |
dbUpdatableField |
La valeur du champ peut être modifiée. |
dbDescending |
Le champ est trié en ordre décroissant (Z - A ou 100 - 0) (s’applique uniquement à un objet Field dans une collection Fields d’un objet Index). Si vous omettez cette constante, le champ est trié par ordre croissant (A - Z ou 0 - 100) (valeur par défaut). |
fieldinfo
Référence à une structure CDaoFieldInfo .
Notes
Un DAOField
objet (OLE) est créé et ajouté à la collection Fields de l’objet DAOTableDef
(OLE). Outre son utilisation pour examiner les propriétés d’objet, vous pouvez également utiliser CDaoFieldInfo
pour construire un paramètre d’entrée pour créer de nouveaux champs dans un tabledef. La première version est CreateField
plus simple à utiliser, mais si vous souhaitez un contrôle plus fin, vous pouvez utiliser la deuxième version de CreateField
, qui prend un CDaoFieldInfo
paramètre.
Si vous utilisez la version de CreateField
ce paramètre, CDaoFieldInfo
vous devez définir soigneusement chacun des membres suivants de la CDaoFieldInfo
structure :
m_strName
m_nType
m_lSize
m_lAttributes
m_bAllowZeroLength
Les membres restants de CDaoFieldInfo
doivent être définis sur 0, FALSE ou une chaîne vide, le cas échéant pour le membre, ou un CDaoException
peut se produire.
Pour plus d’informations, consultez la rubrique « CreateField Method » dans L’aide de DAO.
CDaoTableDef ::CreateIndex
Appelez cette fonction pour ajouter un index à une table.
void CreateIndex(CDaoIndexInfo& indexinfo);
Paramètres
indexinfo
Référence à une structure CDaoIndexInfo .
Notes
Les index spécifient l’ordre des enregistrements accessibles à partir de tables de base de données et indiquent si les enregistrements en double sont acceptés. Les index fournissent également un accès efficace aux données.
Vous n’avez pas besoin de créer d’index pour les tables, mais dans des tables volumineuses et non indexées, l’accès à un enregistrement spécifique ou la création d’un jeu d’enregistrements peut prendre beaucoup de temps. En revanche, la création d’un trop grand nombre d’index ralentit les opérations de mise à jour, d’ajout et de suppression, car tous les index sont automatiquement mis à jour. Considérez ces facteurs comme vous décidez quels index créer.
Les membres suivants de la CDaoIndexInfo
structure doivent être définis :
m_strName
Un nom doit être fourni.m_pFieldInfos
Doit pointer vers un tableau deCDaoIndexFieldInfo
structures.m_nFields
Doit spécifier le nombre de champs dans le tableau deCDaoFieldInfo
structures.
Les membres restants sont ignorés s’ils ont la valeur FALSE. En outre, le m_lDistinctCount
membre est ignoré lors de la création de l’index.
CDaoTableDef ::D eleteField
Appelez cette fonction membre pour supprimer un champ et le rendre inaccessible.
void DeleteField(LPCTSTR lpszName);
void DeleteField(int nIndex);
Paramètres
lpszName
Pointeur vers une expression de chaîne qui est le nom d’un champ existant.
nIndex
Index du champ dans la collection Champs de base zéro de la table, pour la recherche par index.
Notes
Vous pouvez utiliser cette fonction membre sur un nouvel objet qui n’a pas été ajouté à la base de données ou lorsque CanUpdate retourne une valeur différente de zéro.
Pour plus d’informations, consultez la rubrique « Supprimer la méthode » dans l’aide de DAO.
CDaoTableDef ::D eleteIndex
Appelez cette fonction membre pour supprimer un index dans une table sous-jacente.
void DeleteIndex(LPCTSTR lpszName);
void DeleteIndex(int nIndex);
Paramètres
lpszName
Pointeur vers une expression de chaîne qui est le nom d’un index existant.
nIndex
Index de tableau de l’objet d’index dans la collection TableDefs de base zéro de la base de données, pour la recherche par index.
Notes
Vous pouvez utiliser cette fonction membre sur un nouvel objet qui n’a pas été ajouté à la base de données ou lorsque CanUpdate retourne une valeur différente de zéro.
Pour plus d’informations, consultez la rubrique « Supprimer la méthode » dans l’aide de DAO.
CDaoTableDef ::GetAttributes
Pour un CDaoTableDef
objet, la valeur de retour spécifie les caractéristiques de la table représentée par l’objet CDaoTableDef
et peut être une somme de ces constantes :
long GetAttributes();
Valeur de retour
Retourne une valeur qui indique une ou plusieurs caractéristiques d’un CDaoTableDef
objet.
Notes
Constant | Description |
---|---|
dbAttachExclusive |
Pour les bases de données qui utilisent le moteur de base de données Microsoft Jet, indique que la table est une table jointe ouverte pour une utilisation exclusive. |
dbAttachSavePWD |
Pour les bases de données qui utilisent le moteur de base de données Microsoft Jet, indique que l’ID utilisateur et le mot de passe de la table jointe sont enregistrés avec les informations de connexion. |
dbSystemObject |
Indique que la table est une table système fournie par le moteur de base de données Microsoft Jet. |
dbHiddenObject |
Indique que la table est une table masquée fournie par le moteur de base de données Microsoft Jet. |
dbAttachedTable |
Indique que la table est une table jointe à partir d’une base de données non ODBC, telle qu’une base de données Paradox. |
dbAttachedODBC |
Indique que la table est une table jointe à partir d’une base de données ODBC, telle que Microsoft SQL Server. |
Une table système est une table créée par le moteur de base de données Microsoft Jet pour contenir diverses informations internes.
Une table masquée est une table créée pour une utilisation temporaire par le moteur de base de données Microsoft Jet.
Pour plus d’informations, consultez la rubrique « Attributes Property » dans L’aide de DAO.
CDaoTableDef ::GetConnect
Appelez cette fonction membre pour obtenir le chaîne de connexion d’une source de données.
CString GetConnect();
Valeur de retour
Objet CString
contenant le chemin d’accès et le type de base de données de la table.
Notes
Pour un objet qui représente une CDaoTableDef
table jointe, l’objet CString
se compose d’une ou deux parties (spécificateur de type de base de données et chemin d’accès à la base de données).
Le chemin d’accès indiqué dans le tableau ci-dessous est le chemin complet du répertoire contenant les fichiers de base de données et doit être précédé de l’identificateur « DATABASE= ». Dans certains cas (comme avec les bases de données Microsoft Jet et Microsoft Excel), un nom de fichier spécifique est inclus dans l’argument de chemin de base de données.
La table de CDaoTableDef ::SetConnect affiche les types de base de données possibles et leurs spécificateurs et chemins de base de données correspondants :
Pour les tables de base de données Microsoft Jet, le spécificateur est une chaîne vide ( » « ).
Si un mot de passe est requis mais non fourni, le pilote ODBC affiche une boîte de dialogue de connexion la première fois qu’une table est accessible et à nouveau si la connexion est fermée et rouverte. Si une table jointe a l’attribut dbAttachSavePWD
, l’invite de connexion n’apparaît pas lorsque la table est rouverte.
Pour plus d’informations, consultez la rubrique « Connecter la propriété » dans l’aide de DAO.
CDaoTableDef ::GetDateCreated
Appelez cette fonction pour déterminer la date et l’heure de création de la table sous-jacente à l’objet CDaoTableDef
.
COleDateTime GetDateCreated();
Valeur de retour
Valeur contenant la date et l’heure de la création de la table sous-jacente à l’objet CDaoTableDef
.
Notes
Les paramètres de date et d’heure sont dérivés de l’ordinateur sur lequel la table de base a été créée ou mise à jour la dernière fois. Dans un environnement multiutilisateur, les utilisateurs doivent obtenir ces paramètres directement à partir du serveur de fichiers pour éviter les différences ; autrement dit, tous les clients doivent utiliser une source de temps « standard », peut-être à partir d’un serveur.
Pour plus d’informations, consultez la rubrique « DateCreated, LastUpdated Properties » dans l’aide de DAO.
CDaoTableDef ::GetDateLastUpdated
Appelez cette fonction pour déterminer la date et l’heure de la dernière mise à jour de la table sous-jacente de l’objet CDaoTableDef
.
COleDateTime GetDateLastUpdated();
Valeur de retour
Valeur qui contient la date et l’heure de la dernière mise à jour de la table sous-jacente de l’objet CDaoTableDef
.
Notes
Les paramètres de date et d’heure sont dérivés de l’ordinateur sur lequel la table de base a été créée ou mise à jour la dernière fois. Dans un environnement multiutilisateur, les utilisateurs doivent obtenir ces paramètres directement à partir du serveur de fichiers pour éviter les différences ; autrement dit, tous les clients doivent utiliser une source de temps « standard », peut-être à partir d’un serveur.
Pour plus d’informations, consultez la rubrique « DateCreated, LastUpdated Properties » dans l’aide de DAO.
CDaoTableDef ::GetFieldCount
Appelez cette fonction membre pour récupérer le nombre de champs définis dans la table.
short GetFieldCount();
Valeur de retour
Nombre de champs dans la table.
Notes
Si sa valeur est 0, il n’y a aucun objet dans la collection.
Pour plus d’informations, consultez la rubrique « Count Property » dans l’aide de DAO.
CDaoTableDef ::GetFieldInfo
Appelez cette fonction membre pour obtenir différents types d’informations sur un champ défini dans tabledef.
void GetFieldInfo(
int nIndex,
CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetFieldInfo(
LPCTSTR lpszName,
CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Paramètres
nIndex
Index de l’objet champ dans la collection Champs de base zéro de la table, pour la recherche par index.
fieldinfo
Référence à une structure CDaoFieldInfo .
dwInfoOptions
Options qui spécifient les informations sur le champ à récupérer. Les options disponibles sont répertoriées ici, ainsi que ce qu’elles entraînent le retour de la fonction :
AFX_DAO_PRIMARY_INFO
(Par défaut) Nom, type, taille, attributs. Utilisez cette option pour des performances plus rapides.AFX_DAO_SECONDARY_INFO
Informations principales, plus : position ordinale, Obligatoire, Autoriser la longueur zéro, Collating Order, Foreign Name, Source Field, Source TableAFX_DAO_ALL_INFO
Informations primaires et secondaires, plus : règle de validation, texte de validation, valeur par défaut
lpszName
Pointeur vers le nom de l’objet de champ, pour rechercher par nom. Le nom est une chaîne avec jusqu’à 64 caractères qui nomment de manière unique le champ.
Notes
Une version de la fonction vous permet de rechercher un champ par index. L’autre version vous permet de rechercher un champ par nom.
Pour obtenir une description des informations retournées, consultez la structure CDaoFieldInfo . 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.
Pour plus d’informations, consultez la rubrique « Attributes Property » dans L’aide de DAO.
CDaoTableDef ::GetIndexCount
Appelez cette fonction membre pour obtenir le nombre d’index d’une table.
short GetIndexCount();
Valeur de retour
Nombre d’index pour la table.
Notes
Si sa valeur est 0, il n’y a pas d’index dans la collection.
Pour plus d’informations, consultez la rubrique « Count Property » dans l’aide de DAO.
CDaoTableDef ::GetIndexInfo
Appelez cette fonction membre pour obtenir différents types d’informations sur un index défini dans le tabledef.
void GetIndexInfo(
int nIndex,
CDaoIndexInfo& indexinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetIndexInfo(
LPCTSTR lpszName,
CDaoIndexInfo& indexinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
Paramètres
nIndex
Index numérique de l’objet Index dans la collection Index de base zéro de la table, pour la recherche par sa position dans la collection.
indexinfo
Référence à une structure CDaoIndexInfo .
dwInfoOptions
Options qui spécifient les informations sur l’index à récupérer. Les options disponibles sont répertoriées ici, ainsi que ce qu’elles entraînent le retour de la fonction :
AFX_DAO_PRIMARY_INFO
Nom, Informations de champ, Champs. Utilisez cette option pour des performances plus rapides.AFX_DAO_SECONDARY_INFO
Informations principales, plus : Primary, Unique, Clustered, Ignore Nulls, Required, ForeignAFX_DAO_ALL_INFO
Informations primaires et secondaires, plus : Nombre distinct
lpszName
Pointeur vers le nom de l’objet d’index, pour rechercher par nom.
Notes
Une version de la fonction vous permet de rechercher un index par sa position dans la collection. L’autre version vous permet de rechercher un index par nom.
Pour obtenir une description des informations retournées, consultez la structure CDaoIndexInfo . 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.
Pour plus d’informations, consultez la rubrique « Attributes Property » dans L’aide de DAO.
CDaoTableDef ::GetName
Appelez cette fonction membre pour obtenir le nom défini par l’utilisateur de la table sous-jacente.
CString GetName();
Valeur de retour
Nom défini par l’utilisateur pour une table.
Notes
Ce nom commence par une lettre et peut contenir un maximum de 64 caractères. Il peut inclure des nombres et des caractères de soulignement, mais ne peut pas inclure de ponctuation ou d’espaces.
Pour plus d’informations, consultez la rubrique « Name Property » dans L’aide de DAO.
CDaoTableDef ::GetRecordCount
Appelez cette fonction membre pour savoir combien d’enregistrements se trouvent dans un CDaoTableDef
objet.
long GetRecordCount();
Valeur de retour
Nombre d’enregistrements accessibles dans un objet tabledef.
Notes
L’appel GetRecordCount
d’un objet de type CDaoTableDef
table reflète le nombre approximatif d’enregistrements de la table et est affecté immédiatement à mesure que les enregistrements de table sont ajoutés et supprimés. Les transactions restaurées s’affichent dans le cadre du nombre d’enregistrements jusqu’à ce que vous appeliez CDaoWorkSpace ::CompactDatabase. Un CDaoTableDef
objet sans enregistrement n’a pas de paramètre de propriété de nombre d’enregistrements de 0. Lorsque vous utilisez des tables jointes ou des bases de données ODBC, GetRecordCount
retourne toujours -1.
Pour plus d’informations, consultez la rubrique « RecordCount Property » dans l’aide de DAO.
CDaoTableDef ::GetSourceTableName
Appelez cette fonction membre pour récupérer le nom d’une table jointe dans une base de données source.
CString GetSourceTableName();
Valeur de retour
Objet CString
qui spécifie le nom source d’une table jointe ou une chaîne vide si une table de données native.
Notes
Une table jointe est une table dans une autre base de données liée à une base de données Microsoft Jet. Les données des tables jointes restent dans la base de données externe, où elles peuvent être manipulées par d’autres applications.
Pour plus d’informations, consultez la rubrique « SourceTableName Property » dans L’aide de DAO.
CDaoTableDef ::GetValidationRule
Appelez cette fonction membre pour récupérer la règle de validation d’un tabledef.
CString GetValidationRule();
Valeur de retour
Objet CString
qui valide les données d’un champ tel qu’elles sont modifiées ou ajoutées à une table.
Notes
Les règles de validation sont utilisées en connexion avec les opérations de mise à jour. Si un tabledef contient une règle de validation, les mises à jour apportées à ce tabledef doivent correspondre à des critères prédéterminés avant la modification des données. Si la modification ne correspond pas aux critères, une exception contenant la valeur de GetValidationText est levée. Pour un CDaoTableDef
objet, il s’agit CString
de lecture seule pour une table jointe et de lecture/écriture pour une table de base.
Pour plus d’informations, consultez la rubrique « ValidationRule Property » dans L’aide de DAO.
CDaoTableDef ::GetValidationText
Appelez cette fonction pour récupérer la chaîne à afficher lorsqu’un utilisateur entre des données qui ne correspondent pas à la règle de validation.
CString GetValidationText();
Valeur de retour
Objet CString
qui spécifie le texte affiché si l’utilisateur entre des données qui ne correspondent pas à la règle de validation.
Notes
Pour un CDaoTableDef
objet, il s’agit CString
de lecture seule pour une table jointe et de lecture/écriture pour une table de base.
Pour plus d’informations, consultez la rubrique « ValidationText Property » dans l’aide de DAO.
CDaoTableDef ::IsOpen
Appelez cette fonction membre pour déterminer si l’objet CDaoTableDef
est actuellement ouvert.
BOOL IsOpen() const;
Valeur de retour
Différent de zéro si l’objet CDaoTableDef
est ouvert ; sinon, 0.
Notes
CDaoTableDef ::m_pDatabase
Contient un pointeur vers l’objet CDaoDatabase pour cette table.
Notes
CDaoTableDef ::m_pDAOTableDef
Contient un pointeur vers l’interface OLE de l’objet tabledef DAO sous-jacent à l’objet CDaoTableDef
.
Notes
Utilisez ce pointeur si vous devez accéder directement à l’interface DAO.
CDaoTableDef ::Open
Appelez cette fonction membre pour ouvrir un tabledef précédemment enregistré dans la collection TableDef de la base de données.
virtual void Open(LPCTSTR lpszName);
Paramètres
lpszName
Pointeur vers une chaîne qui spécifie un nom de table.
Notes
CDaoTableDef ::RefreshLink
Appelez cette fonction membre pour mettre à jour les informations de connexion d’une table jointe.
void RefreshLink();
Notes
Vous modifiez les informations de connexion d’une table jointe en appelant SetConnect sur l’objet correspondant CDaoTableDef
, puis en utilisant la RefreshLink
fonction membre pour mettre à jour les informations. Lorsque vous appelez RefreshLink
, les propriétés de la table jointe ne sont pas modifiées.
Pour forcer les informations de connexion modifiées à prendre effet, tous les objets CDaoRecordset ouverts basés sur ce tabledef doivent être fermés.
Pour plus d’informations, consultez la rubrique « RefreshLink Method » dans l’aide de DAO.
CDaoTableDef ::SetAttributes
Définit une valeur qui indique une ou plusieurs caractéristiques d’un CDaoTableDef
objet.
void SetAttributes(long lAttributes);
Paramètres
lAttributes
Caractéristiques de la table représentée par l’objet CDaoTableDef
et peut être une somme de ces constantes :
Constant | Description |
---|---|
dbAttachExclusive |
Pour les bases de données qui utilisent le moteur de base de données Microsoft Jet, indique que la table est une table jointe ouverte pour une utilisation exclusive. |
dbAttachSavePWD |
Pour les bases de données qui utilisent le moteur de base de données Microsoft Jet, indique que l’ID utilisateur et le mot de passe de la table jointe sont enregistrés avec les informations de connexion. |
dbSystemObject |
Indique que la table est une table système fournie par le moteur de base de données Microsoft Jet. |
dbHiddenObject |
Indique que la table est une table masquée fournie par le moteur de base de données Microsoft Jet. |
Notes
Lorsque vous définissez plusieurs attributs, vous pouvez les combiner en additionnant les constantes appropriées à l’aide de l’opérateur OR au niveau du bit. La définition dbAttachExclusive
d’une table non attachée produit une exception. La combinaison des valeurs suivantes produit également une exception :
dbAttachExclusive | dbAttachedODBC
dbAttachSavePWD | dbAttachedTable
Pour plus d’informations, consultez la rubrique « Attributes Property » dans L’aide de DAO.
CDaoTableDef ::SetConnect
Pour un objet qui représente une CDaoTableDef
table jointe, l’objet de chaîne se compose d’une ou deux parties (spécificateur de type de base de données et chemin d’accès à la base de données).
void SetConnect(LPCTSTR lpszConnect);
Paramètres
lpszConnect
Pointeur vers une expression de chaîne qui spécifie des paramètres supplémentaires à passer aux pilotes ISAM ODBC ou installables.
Notes
Le chemin d’accès indiqué dans le tableau ci-dessous est le chemin complet du répertoire contenant les fichiers de base de données et doit être précédé de l’identificateur « DATABASE= ». Dans certains cas (comme avec les bases de données Microsoft Jet et Microsoft Excel), un nom de fichier spécifique est inclus dans l’argument de chemin de base de données.
Remarque
N’incluez pas d’espace blanc autour des instructions de chemin d’accès de connexion égales de la forme « DATABASE=drive :\\path ». Cela entraîne la levée d’une exception et l’échec de la connexion.
Le tableau suivant présente les types de base de données possibles et leurs spécificateurs et chemins de base de données correspondants :
Type de base de données | Spécificateur | Chemin d’accès |
---|---|---|
Base de données utilisant le moteur de base de données Jet | « [ database ] ; » |
" drive :\\ path\\ filename. MDB " |
dBASE III | « dBASE III ; » | « drive :\\ path » |
dBASE IV | « dBASE IV ; » | « drive :\\ path » |
dBASE 5 | « dBASE 5.0 ; » | « drive :\\ path » |
Paradox 3.x | « Paradox 3.x ; » | « drive :\\ path » |
Paradox 4.x | « Paradox 4.x ; » | « drive :\\ path » |
Paradox 5.x | « Paradox 5.x ; » | « drive :\\ path » |
Excel 3.0 | « Excel 3.0 ; » | « drive :\\ path\\ filename.XLS » |
Excel 4.0 | « Excel 4.0 ; » | « drive :\\ path\\ filename.XLS » |
Excel 5.0 ou Excel 95 | « Excel 5.0 ; » | « drive :\\ path\\ filename.XLS » |
Excel 97 | « Excel 8.0 ; » | « drive :\\ path\ filename.XLS » |
Importation HTML | « Importation HTML ; » | « drive :\\ path\ filename » |
Exportation HTML | « Exportation HTML ; » | « drive :\\ path » |
Détails | « Text ; » | « drive :\\path » |
ODBC | « ODBC ; DATABASE= database ; UID= utilisateur ; PWD= mot de passe ; DSN= datasourcename ; LOGINTIMEOUT= secondes ;" (Ce n’est peut-être pas un chaîne de connexion complet pour tous les serveurs ; il s’agit simplement d’un exemple. Il est très important de ne pas avoir d’espaces entre les paramètres.) |
Aucune |
Exchange | "Exchange ; MAPILEVEL= folderpath ; [TABLETYPE={ 0 | 1 } ;] [PROFILE= profile ;] [PWD= password ;] [DATABASE= database ;]" |
« drive :\\ path\\ filename. MDB " |
Remarque
Btrieve n’est plus pris en charge depuis DAO 3.5.
Vous devez utiliser une double barre oblique inverse (\\) dans les chaîne de connexion s. Si vous avez modifié les propriétés d’une connexion existante à l’aide SetConnect
de , vous devez ensuite appeler RefreshLink. Si vous initialisez les propriétés de connexion à l’aide SetConnect
de , vous n’avez pas besoin d’appeler RefreshLink
, mais si vous choisissez de le faire, ajoutez d’abord le tabledef.
Si un mot de passe est requis mais non fourni, le pilote ODBC affiche une boîte de dialogue de connexion la première fois qu’une table est accessible et à nouveau si la connexion est fermée et rouverte.
Vous pouvez définir la chaîne de connexion d’un CDaoTableDef
objet en fournissant un argument source à la Create
fonction membre. Vous pouvez vérifier le paramètre pour déterminer le type, le chemin d’accès, l’ID utilisateur, le mot de passe ou la source de données ODBC de la base de données. Pour plus d’informations, consultez la documentation relative au pilote spécifique.
Pour plus d’informations, consultez la rubrique « Connecter la propriété » dans l’aide de DAO.
CDaoTableDef ::SetName
Appelez cette fonction membre pour définir un nom défini par l’utilisateur pour une table.
void SetName(LPCTSTR lpszName);
Paramètres
lpszName
Pointeur vers une expression de chaîne qui spécifie un nom pour une table.
Notes
Le nom doit commencer par une lettre et peut contenir au maximum 64 caractères. Il peut inclure des nombres et des caractères de soulignement, mais ne peut pas inclure de ponctuation ou d’espaces.
Pour plus d’informations, consultez la rubrique « Name Property » dans L’aide de DAO.
CDaoTableDef ::SetSourceTableName
Appelez cette fonction membre pour spécifier le nom d’une table jointe ou le nom de la table de base sur laquelle l’objet CDaoTableDef
est basé, tel qu’il existe dans la source d’origine des données.
void SetSourceTableName(LPCTSTR lpszSrcTableName);
Paramètres
lpszSrcTableName
Pointeur vers une expression de chaîne qui spécifie un nom de table dans la base de données externe. Pour une table de base, le paramètre est une chaîne vide (« »).
Notes
Vous devez ensuite appeler RefreshLink. Ce paramètre de propriété est vide pour une table de base et en lecture/écriture pour une table jointe ou un objet non ajouté à une collection.
Pour plus d’informations, consultez la rubrique « SourceTableName Property » dans L’aide de DAO.
CDaoTableDef ::SetValidationRule
Appelez cette fonction membre pour définir une règle de validation pour un tabledef.
void SetValidationRule(LPCTSTR lpszValidationRule);
Paramètres
lpszValidationRule
Pointeur vers une expression de chaîne qui valide une opération.
Notes
Les règles de validation sont utilisées en connexion avec les opérations de mise à jour. Si un tabledef contient une règle de validation, les mises à jour apportées à ce tabledef doivent correspondre à des critères prédéterminés avant la modification des données. Si la modification ne correspond pas aux critères, une exception contenant le texte de GetValidationText est affichée.
La validation est prise en charge uniquement pour les bases de données qui utilisent le moteur de base de données Microsoft Jet. L’expression ne peut pas faire référence aux fonctions définies par l’utilisateur, aux fonctions d’agrégation de domaine, aux fonctions d’agrégation SQL ou aux requêtes. Une règle de validation pour un CDaoTableDef
objet peut faire référence à plusieurs champs de cet objet.
Par exemple, pour les champs nommés hire_date et termination_date, une règle de validation peut être :
myTableDef.SetValidationRule(_T("termination_date > hire_date"));
Pour plus d’informations, consultez la rubrique « ValidationRule Property » dans L’aide de DAO.
CDaoTableDef ::SetValidationText
Appelez cette fonction membre pour définir le texte d’exception d’une règle de validation pour un CDaoTableDef
objet avec une table de base sous-jacente prise en charge par le moteur de base de données Microsoft Jet.
void SetValidationText(LPCTSTR lpszValidationText);
Paramètres
lpszValidationText
Pointeur vers une expression de chaîne qui spécifie le texte affiché si les données entrées ne sont pas valides.
Notes
Vous ne pouvez pas définir le texte de validation d’une table jointe.
Pour plus d’informations, consultez la rubrique « ValidationText Property » dans l’aide de DAO.
Voir aussi
CObject, classe
Graphique hiérarchique
CDaoDatabase, classe
CDaoRecordset, classe