CDaoTableDefInfo结构

CDaoTableDefInfo结构具有如下形式:
struct CDaoTableDefInfo
{
  CString m_strName;             // Primary
  BOOL m_bUpdatable;             // Primary
  long m_lAttributes;            // Primary
  COleDateTime m_dateCreated;    // Secondary
  COleDateTime m_dateLastUpdated;  // Secondary
  CString m_strSrcTableName;       // Secondary
  CString m_strConnect;            // Secondary
  CString m_strValidationRule;     // All
  CString m_strValidationText;     // All
  long m_lRecordCount;             // All
};
CDaoTableDefInfo结构中包含了为数据访问对象(DAO)定义的表定义对象的信息。表定义是CDaoTableDef类的对象。上面对Primary,Secondary和All的引用指明了在CDaoDatabase类的成员函数GetTableDefInfo中信息是如何返回的。

成员:
m_strName表定义对象的唯一的名字。如果要直接获得这个属性的值,调用表定义对象的GetName成员函数。更多的信息参见DAO帮助中的“Name属性”主题。
m_bUpdatable指明是否可以修改表。确定一个表可以修改的最快的方式是否为这个表打开一个CDaoTableDef对象,然后调用这个对象的CanUpdate成员函数。对于一个新创建的表定义对象,CanUpdate总是返回非零值(TRUE),对于连接的表定义对象则返回0(FALSE)。一个新创建的表定义对象仅能被附加到一个用户具有写权限的数据库。如果该表仅包含不可更新的字段,CanUpdate返回0。当有一个或多个字段可以被更新时,CanUpdate返回非零值。你只能编辑可更新的字段。更多的信息参见DAO帮助中的“Updatable属性”主题。
m_lAttributes指定了表定义对象所代表的表的特征。如果要获得表定义的当前属性,调用它的成员函数GetAttributes。返回值可能是下面这些值的组合(使用位或操作符|):
·dbAttachExclusive对于使用Microsoft Jet数据库引擎的数据库,指明这个表是一个独占使用的表。
·dbAttachSavePWD对于使用Microsoft Jet数据库引擎的数据库,指明连接的表的用户ID和密码被保存在连接信息中。
·dbSystemObject指明这个表是由Microsoft Jet数据库引擎提供的系统表(只读)。
·dbHiddenObject指明这个表是由Microsoft Jet数据库引擎提供的隐含表(只读)。
·dbAttachedTable指明这个表是非ODBC数据库,例如Paradox数据库的一个连接表。
·dbAttachedODBC指明这个表是ODBC数据库,例如Microsoft SQLServer数据库的一个连接表。
m_dateCreated创建表的日期和时间。如果要直接获得创建表的日期,调用与该表相关的CDaoTableDef对象的GetDateCreated成员函数。更多的信息参见下面的注释。相关信息参见DAO帮助中的“DateCreated,LastUpdated属性”主题。
m_dateLastUpdated最近对表的设计作出改变的日期和时间。如果要直接获取该表最近被修改的日期,调用与该表相关的CDaoTableDef对象的GetDateLastUpdated成员函数。更多的信息参见下面的注释。相关的信息参见DAO帮助中的“DateCreated,LastUpdated属性”主题。
m_strSrcTableName指定了连接表的名字,如果有的话。如果要直接获得源表的名字,调用与表相关的CDaoTableDef对象的GetSourceTableName成员函数。
m_strConnect提供了与打开的数据库源有关的信息。你可以调用CDaoTableDef对象的成员函数GetConnect来检查这个属性。有关连接字符串的更多信息参见GetConnect。
m_strValidationRule当表定义字段中的数据被改变或加入一个表中时,这个值被用来校验数据。校验仅支持使用Microsoft Jet数据库引擎的数据库。如果要直接获得校验规则,调用与该表相关的CDaoTableDef对象的GetValidationRule成员函数。相关的信息参见DAO帮助中的“Validation属性”主题。
m_strValidationText指定了当ValidationRule属性所指定的校验规则不被满足时,应用程序要显示的消息文本。相关的消息参见DAO帮助中的“ValidationText属性”主题。
m_lRecordCount在表定义对象中访问的记录数目。这个属性是只读的。如果要直接获取记录的计数,调用CDaoTableDef对象的GetRecordCount成员函数。
GetRecordCount的文档进一步描述了记录计数。注意如果表中有很多记录,要获得这个计数可能耗去很多时间。

注释:
CDaoDatabase::GetTableDefInfo成员函数获得的信息被保存在CDaoTableDefInfo结构中。调用CDaoDatabase结构的GetTableDefInfo成员函数,表定义对象就保存在的TableDefs集合中。CDaoTableDefInfo还在调试版本中定义了一个Dump成员函数。你可以使用Dump来转储CDaoTableDefInfo对象的内容。
日期和时间设置是从基表被创建或修改的计算机上获得的。在多用户环境中,用户应该直接从文件服务器获得这些设置以避免DateCreated和LastUpdated属性产生不一致。
有关这个结构和其他MFC DAO Info结构的信息参见“Visual C++ 程序员指南”中的文章“DAO集合:获得DAO对象的信息”。

请参阅:
CDaoTableDef, CDaoDatabase, CDaoTableDef::CanUpdate, CDaoTableDef::GetAttributes, CDaoTableDef::GetDateCreated, CDaoTableDef::GetDateLastUpdated, CDaoTableDef::GetRecordCount, CDaoTableDef::GetSourceTableName, CDaoTableDef::GetValidationRule, CDaoTableDef::GetValidationText