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
唯一命名字段对象。 有关详细信息,请参见主题“名称属性”在DAO 帮助中。m_nType
指示字段的数据类型的值。 有关详细信息,请参见主题“类型属性”在DAO 帮助中。 此属性的值可以是下列值之一。为或不是的dbBoolean,然后 TRUE/FALSE相同
dbByte Byte
dbInteger Short
dbLong Long
货币dbCurrency;请参见 COleCurrencyMFC 类
dbSingle Single
dbDouble Double
dbDate日期/时间请参见 COleDateTimeMFC 类
dbText文本请参见 CStringMFC 类
dbLongBinary 长二进制 (OLE 对象);因为 CByteArray 更丰富、更易于使用,则可能需要改用 CByteArray MFC 类而不是 CLongBinary 类。
Text;dbMemo参见 MFC CString类
dbGUID 全局唯一标识符 (GUID)/全局唯一标识符用于远程过程调用。 有关更多信息,请参见本主题中 DAO 帮助中的“类型属性”。
备注
不要为二进制数据使用 String 数据类型。这让数据通过 Unicode/ANSI 转换层,从而增加的开销以及可能意外的转换。
m_lSize
指示最大大小,以字节中,DAO 字段对象包含文本或固定字段对象包含文本或数字值。 有关详细信息,请参见主题“大小属性”在DAO 帮助中。 大小可以是下列值之一:类型
大小(字节)
说明
dbBoolean
1 个字节
Yes/No (same as True/False)
dbByte
1
Byte
dbInteger
2
Integer
dbLong
4
Long
dbCurrency
8
Currency (COleCurrency)
dbSingle
4
Single
dbDouble
8
Double
dbDate
8
日期/时间 (COleDateTime)
dbText
1 - 255
Text (CString)
dbLongBinary
0
长二进制 (OLE 对象;CByteArray;使用而非 CLongBinary)
dbMemo
0
Memo (CString)
dbGUID
16
dbGUID 全局唯一标识符 (GUID)/全局唯一标识符用于远程过程调用。
m_lAttributes
指定记录集、querydef 对象、tabledef 或索引字段包含的对象的特性。 返回的值可以是这些常量的总和,使用 C++ 创建一种按位或 ( |) operator:dbFixedField 字段长度修复 (数字字段的默认值)。
dbVariableField 字段长度是可变 (纯文本字段)。
dbAutoIncrField 用于新记录的字段值会自动递增到无法更改的单个长的整数。 仅支持使用 Microsoft Jet 数据库表。
dbUpdatableField 字段值可以更改。
dbDescending 字段在停止存储 (Z (或 100 - 0) 排序顺序 (仅应用于索引对象的字段集合的字段对象;在 MFC 中,索引对象在 tabledef 包含对象)。 如果省略了该常数,字段中登高 (A-Z 或 0 - 100) 排序 (默认) 排序。
当检查此属性时,将可以使用 C++ 位与运算符 (&) 测试特定特性。 当为多个属性时,可以通过将适当的常数将它们用按位或 ( |) operator. 有关详细信息,请参见主题“属性 属性”在DAO 帮助中。
m_nOrdinalPosition
指定数字顺序需要字段的值是显示的 DAO 字段对象表示相对于其他字段。 可以使用 CDaoTableDef::CreateField设置了此属性。 有关详细信息,请参见主题“定序位置 属性”在DAO 帮助中。m_bRequired
指示 DAO 字段对象是否需要一个非空值。 如果此属性 TRUE,字段不允许空值。 如果设置为 FALSE,AllowZeroLength 和字段可能包含与 ValidationRule 属性指定的条件的空值并设置值。 有关详细信息,请参见主题“需要的属性”在DAO 帮助中。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField。m_bAllowZeroLength
一个空字符串 ("") DAO 字段是否为对象的一个有效值。文本或备忘录数据类型。 如果此属性 TRUE,空字符串是有效值。 可以将此属性设置为 FALSE 不确保可以使用空字符串设置的字段值。 有关详细信息,请参见主题“AllowZeroLength 属性”在DAO 帮助中。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField。m_lCollatingOrder
文本中指定用于字符串比较或排序的排序顺序的序列。 有关详细信息,请参见主题“自定义 Windows 数据访问的注册表设置”DAO 帮助。 对于返回可能值的列表,请参见 CDaoDatabaseInfo 结构的 m_lCollatingOrder 成员中。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField。m_strForeignName
该关系,DAO 外表中指定对象名称字段在主表中对应的字段的值。 有关详细信息,请参见主题“ForeignNam 属性”在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
指定消息文本应用程序显示的值,则对象 ValidationRule DAO 字段的值不符合指定属性设置的验证规则。 有关详细信息,请参见主题“ValidationText属性”在DAO 帮助中。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField。m_strDefaultValue
DAO 字段对象的默认值。 当新记录时创建,DefaultValue 属性设置自动进入,当字段的值。 有关详细信息,请参见主题“DefaultValue属性”在DAO 帮助中。 可以设置一 tabledef 的此属性与 CDaoTableDef::CreateField。
备注
主键,二级键和所有上面的引用指示信息如何由 GetFieldInfo 成员函数返回类CDaoTableDef, CDaoQueryDef, 以及CDaoRecordset.
字段对象不被 MFC 类表示。 相反,基于下面类的 MFC 对象的 DAO 字段对象包含对象的集合:CDaoTableDefCDaoRecordsetCDaoQueryDef。 这些类提供成员函数访问索引信息各个项,也可同时用 GetFieldInfo对象访问它们,通过调用包含对象的 CDaoFieldInfo 成员函数。
除了其检查对象的属性使用外,您还可以使用 CDaoFieldInfo 构造中创建的新字段的输入参数 tabledef 的。 更简单的选项用于此任务,都可用,但是,如果您希望更细致的控制,可以使用 CDaoTableDef::CreateField 采用 CDaoFieldInfo 参数的版本。
GetFieldInfo 成员函数中的信息包含字段) (类在 CDaoFieldInfo 结构存储。 调用字段集合字段对象存储包含对象的 GetFieldInfo 成员函数中。 CDaoFieldInfo 还定义了函数调试版本的 Dump 成员。 您可以使用Dump 显示CDaoFieldInfo对象的内容。
要求
头文件: afxdao.h