Partager via


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 les SetConnect fonctions membres pour les tables jointes et utilisez la RefreshLink 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 SetValidationRuleGetValidationText 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

  1. Dans tous les cas, commencez par construire un CDaoTableDef objet, en fournissant un pointeur vers un objet CDaoDatabase auquel appartient la table.

  2. 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’appel Create , vous n’appelez Openpas .

      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

CObject

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 de CDaoIndexFieldInfo structures.

  • m_nFields Doit spécifier le nombre de champs dans le tableau de CDaoFieldInfo 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 Table

  • AFX_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, Foreign

  • AFX_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

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 SetConnectde , vous devez ensuite appeler RefreshLink. Si vous initialisez les propriétés de connexion à l’aide SetConnectde , 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