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。
备注
对母版,如,因此,所有上述指示信息的方式。在类 CDaoTableDef、 CDaoQueryDef和 CDaoRecordset的 GetFieldInfo 成员函数返回。
域对象不是由 MFC 类表示。 相反,基础下面的类的 MFC 对象的 DAO 对象包含字段对象的集合: CDaoTableDef、 CDaoRecordset和 CDaoQueryDef。 访问的这些类提供成员函数字段信息一些各个项或者您同时也能访问与 CDaoFieldInfo 对象通过调用包含的对象的 GetFieldInfo 成员函数。
除了检查对象的属性使用外,还可以使用 CDaoFieldInfo 构造创建新字段的输入参数在 tabledef。 更简单的选项用于此任务可用,则,但是,如果需要更好的控制,可以使用采用 CDaoFieldInfo 参数 CDaoTableDef::CreateField 的版本。
GetFieldInfo 成员函数检索的信息包含字段) 的 (类在 CDaoFieldInfo 结构中。 调用字段集合字段对象存储包含的对象的 GetFieldInfo 成员函数。 CDaoFieldInfo 还定义功能调试版本的一个 Dump 成员。 可以使用 Dump 转储 CDaoFieldInfo 对象的内容。
要求
Header: afxdao.h