CDaoFieldInfo 结构

CDaoFieldInfo 结构包含有关用于数据访问对象 (DAO)定义的字段对象的信息。

struct CDaoFieldInfo
{
   CString m_strName;           // Primary
   short m_nType;               // Primary
   long m_lSize;                // Primary
   long m_lAttributes;          // Primary
   short m_nOrdinalPosition;    // Secondary
   BOOL m_bRequired;            // Secondary
   BOOL m_bAllowZeroLength;     // Secondary
   long m_lCollatingOrder;      // Secondary
   CString m_strForeignName;    // Secondary
   CString m_strSourceField;    // Secondary
   CString m_strSourceTable;    // Secondary
   CString m_strValidationRule; // All
   CString m_strValidationText; // All
   CString m_strDefaultValue;   // All
};

参数

  • m_strName
    个名为的域对象。 有关详细信息,请参见主题 “name 属性” DAO 帮助。

  • m_nType
    指示字段的数据类型的值。 有关详细信息,请参见主题 “DAO 帮助中的类型属性”。 此属性的值可以为以下值之一:

    • 是/否的dbBoolean,并 TRUE/FALSE相同

    • dbByte 字节

    • dbInteger

    • dbLong

    • dbCurrency 货币;请参见 MFC 类 COleCurrency

    • 唯一的dbSingle

    • dbDouble 二进制文件

    • dbDate 日期/时间;请参见 MFC 类 COleDateTime

    • dbText 文本;请参见 MFC 类 CString

    • dbLongBinary 长的二进制文件 (OLE 对象);,因为 CByteArray 更为丰富且更易于使用,您可能希望使用 MFC 类 CByteArray 而不是类 CLongBinary

    • dbMemo 通知单;请参见 MFC 类 CString

    • dbGUID 全局唯一标识符 (guid)/来唯一标识符用于远程过程调用。 有关更多信息,请参见主题 “DAO 帮助中的类型属性”。

    备注

    不要为二进制数据使用字符串数据类型。这将使您的数据通过 Unicode/ANSI 转换层,从而增加的开销和能意外的转换。

  • m_lSize
    指示最大大小,在字节, DAO 域对象包含文本或固定大小的域对象包含文本值或数值的值。 有关详细信息,请参见主题的 “范围属性” DAO 帮助。 范围可为下列值之一:

    类型

    大小 (字节)

    说明

    dbBoolean

    1 个字节

    是/否 (和 true 或 False 相同)

    dbByte

    1

    Byte

    dbInteger

    2

    Integer

    dbLong

    4

    Long

    dbCurrency

    8

    货币 (COleCurrency)

    dbSingle

    4

    Single

    dbDouble

    8

    Double

    dbDate

    8

    日期/时间 (COleDateTime)

    dbText

    1 - 255

    文本 (CString)

    dbLongBinary

    0

    长的二进制文件 (OLE 对象; CByteArray;而不是 CLongBinary的使用)

    dbMemo

    0

    通知单 (CString)

    dbGUID

    16

    全局唯一标识符 (guid)/来唯一标识符用于远程过程调用。

  • m_lAttributes
    指定 tabledef、记录集、 querydef 或索引对象包含的字段对象的特征。 返回的值可以是这些常量的一个总和,创建 C++ 按位或 ( |) 运算符:

    • dbFixedField 字段长度是固定的 (数字字段的默认值)。

    • dbVariableField 字段长度为可变 (仅限文本字段)。

    • dbAutoIncrField 新记录的字段值自动递增到不能更改的单个长整数。 仅支持 Microsoft Jet 数据库表。

    • 可以更改dbUpdatableField 字段值。

    • dbDescending 字段按降序 (Z - 或 100 - 0) 序列排序 (仅适用于索引对象的字段集合中的域对象;在 MFC 中,索引对象它们在 tabledef 对象包含)。 如果省略该常数,该字段按序 () 或 0 - 100) 序列 (默认值) 排序。

    当检查设置此属性时,可以使用 C++ 按位与运算符 (&) 测试特定属性。 当设置多个属性时,可以将适当的常数将它们与按位或 ( |) 运算符。 有关详细信息,请参见主题 “属性” DAO 帮助。

  • m_nOrdinalPosition
    指定数字顺序可能希望字段的值是要显示的 DAO 字段对象表示相对于其他字段。 可以设置与 CDaoTableDef::CreateField了此属性。 有关详细信息,请参见主题 OrdinalPosition “属性” DAO 帮助。

  • m_bRequired
    指示 DAO 域对象是否需要非 null 值。 如果此属性为 TRUE,该字段不允许 null 值。 如果必须设置为 FALSE,该字段可以包含与 AllowZeroLength 和 ValidationRule 属性指定的条件设置的 null 值和值。 有关详细信息,请参见主题 “必需属性” DAO 帮助。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField

  • m_bAllowZeroLength
    指示一个空字符串 ("") 为一 DAO 对象的字段的有效值使用文本或通知单数据类型的。 如果此属性为 TRUE空字符串,是有效值。 可以将此属性设置为 FALSE 确保不会使用空字符串设置字段的值。 有关详细信息,请参见主题 AllowZeroLength “属性” DAO 帮助。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField

  • m_lCollatingOrder
    在文本指定排序顺序的顺序进行字符串比较或排序。 有关详细信息,请参见主题 “自定义窗口数据访问的注册表设置” DAO 帮助。 对可能值的列表返回,请参见 CDaoDatabaseInfo 结构的 m_lCollatingOrder 成员。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField

  • m_strForeignName
    ,在关系,在一个外部表中指定 DAO 域对象的名称在一个主表中对应于一个字段的值。 有关详细信息,请参见主题 ForeignName “属性” DAO 帮助。

  • m_strSourceField
    指示是数据的原始源为 tabledef、记录集或 querydef 对象包含的 DAO 字段对象的字段的名称。 此属性指示原始字段名称与域对象。 例如,可以使用此属性确定数据的原始源在名称与字段的名称无关在基础表中的查询字段。 有关详细信息,请参见主题 “SourceField, SourceTable 属性” DAO 帮助。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField

  • m_strSourceTable
    指示是数据的原始源为 tabledef、记录集或 querydef 对象包含的 DAO 字段对象表的名称。 此属性指示原始表名与域对象。 例如,可以使用此属性确定数据的原始源在名称与字段的名称无关在基础表中的查询字段。 有关详细信息,请参见主题 “SourceField, SourceTable 属性” DAO 帮助。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField

  • m_strValidationRule
    验证字段中的数据的值,则已更改或添加到表中。 有关详细信息,请参见主题 ValidationRule “属性” DAO 帮助。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField

    有关 tabledefs 的相关信息,请参见 CDaoTableDefInfo 结构的 m_strValidationRule 成员。

  • m_strValidationText
    指定消息文本您的应用程序显示的值,如果 DAO 字段对象的值不满足 ValidationRule 属性设置指定的验证规则。 有关详细信息,请参见主题 ValidationText “属性” DAO 帮助。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField

  • m_strDefaultValue
    DAO 对象的字段的默认值。 当新记录之后, DefaultValue 属性设置为自动按该字段的值。 有关详细信息,请参见主题 “DefaultValue 属性” DAO 帮助。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField

备注

对母版,如,因此,所有上述指示信息的方式。在类 CDaoTableDefCDaoQueryDefCDaoRecordsetGetFieldInfo 成员函数返回。

域对象不是由 MFC 类表示。 相反,基础下面的类的 MFC 对象的 DAO 对象包含字段对象的集合: CDaoTableDefCDaoRecordsetCDaoQueryDef。 访问的这些类提供成员函数字段信息一些各个项或者您同时也能访问与 CDaoFieldInfo 对象通过调用包含的对象的 GetFieldInfo 成员函数。

除了检查对象的属性使用外,还可以使用 CDaoFieldInfo 构造创建新字段的输入参数在 tabledef。 更简单的选项用于此任务可用,则,但是,如果需要更好的控制,可以使用采用 CDaoFieldInfo 参数 CDaoTableDef::CreateField 的版本。

GetFieldInfo 成员函数检索的信息包含字段) 的 (类在 CDaoFieldInfo 结构中。 调用字段集合字段对象存储包含的对象的 GetFieldInfo 成员函数。 CDaoFieldInfo 还定义功能调试版本的一个 Dump 成员。 可以使用 Dump 转储 CDaoFieldInfo 对象的内容。

要求

Header: afxdao.h

请参见

参考

CDaoTableDef::GetFieldInfo

CDaoRecordset::GetFieldInfo

CDaoQueryDef::GetFieldInfo

其他资源

结构、样式、回调和消息映射