CDaoFieldInfo 結構
CDaoFieldInfo結構包含 field 物件為資料存取物件 (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 物件])。 您可能想要使用 MFC 類別 CByteArray 而不是類別的CLongBinary與CByteArray是更豐富、 更輕鬆地使用。
dbMemo 備忘錄。 請參閱 MFC 類別CString
dbGUID a 全域唯一識別元/通用唯一識別項與遠端程序呼叫一起使用。 如需詳細資訊,請參閱 DAO 說明 》 的 「 型別屬性 」 的主題。
注意事項 請勿使用字串資料型別為二進位資料。這會使您的資料通過 Unicode/ANSI 轉譯層,因而導致更高額外負荷,而且可能是未預期的轉譯。
m_lSize
指出最大的大小,以位元組為單位 DAO field 物件,其中包含文字或包含文字或數值的欄位物件的固定的大小的值。 如需詳細資訊,請參閱 DAO 說明 》 的 「 Size 屬性 」 的主題。 大小可以是下列值之一:型別
大小 (位元組)
描述
dbBoolean
1 個位元組
是/否 (同於 [真/假)
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
全域唯一識別元/通用唯一識別項與遠端程序呼叫一起使用。
m_lAttributes
指定的 tabledef、 資料錄集、 querydef 或索引物件所包含的欄位物件的特性。 傳回的值可以是以 C++ 的位元 OR (建立這些常數,加總 |) 運算子:dbFixedField 欄位大小固定的 (數值型態欄位的預設值)。
dbVariableField 欄位大小是變數 (文字欄位)。
dbAutoIncrField 的新資料錄的欄位值會自動遞增,不能變更為唯一的長整數。 僅支援 Microsoft Jet 資料庫資料表。
dbUpdatableField 可以變更欄位值。
dbDescending 的欄位以遞減排序 (Z-A 或 100-0) (僅適用於欄位集合中的索引物件 ; field 物件的順序 在 MFC 中,索引物件本身是包含在 tabledef 物件)。 如果您省略這個常數時,欄位會依序遞增 (A – Z 或 0-100) 順序 (預設值)。
存回時這個屬性的設定值,您可以使用 C++ 位元-和運算子 (與) 來測試特定的屬性。 要設定多個屬性,您就可以將它們結合以位元 OR (結合適當的常數 |) 運算子。 如需詳細資訊,請參閱"屬性的內容"DAO 說明 》 的主題。
m_nOrdinalPosition
值,指定您想要由 DAO field 物件,以顯示相對於其他欄位的欄位數字順序。 您可以設定此屬性與 CDaoTableDef::CreateField。 如需詳細資訊,請參閱 DAO 說明 》 的 「 OrdinalPosition 屬性 」 的主題。m_bRequired
指出 DAO field 物件是否需要非 Null 值。 如果這個屬性是 ,則為 TRUE,此欄位不允許 Null 值。 如果是則設定為必要的 ,則為 FALSE,欄位可包含 Null 值,以及符合指定條件的 [允許零長度字串及 [驗證規則] 屬性設定值的值。 如需詳細資訊,請參閱 DAO 說明 》 的"必須有屬性 」 的主題。 您可以設定此屬性,如 tabledef 與 CDaoTableDef::CreateField。m_bAllowZeroLength
指出是否為空字串 ("") 是 DAO field 物件具有文字或備忘資料類型的有效值。 如果這個屬性是 ,則為 TRUE,空字串是有效的值。 您可以將這個屬性設定為 ,則為 FALSE 以確保您不能使用空字串來設定欄位的值。 如需詳細資訊,請參閱 DAO 說明 》 的 「 允許零長度字串屬性 」 的主題。 您可以設定此屬性,如 tabledef 與 CDaoTableDef::CreateField。m_lCollatingOrder
指定文字字串比較或排序順序的排序順序。 如需詳細資訊,請參閱 「 自訂 Windows 登錄設定值的資料存取 」 DAO 說明 》 的主題。 如需可能傳回的值清單,請參閱 m_lCollatingOrder 成員的 CDaoDatabaseInfo 結構。 您可以設定此屬性,如 tabledef 與 CDaoTableDef::CreateField。m_strForeignName
指定的值,之間的關係,DAO field 物件對應至主資料表中欄位的外部資料表中的名稱。 如需詳細資訊,請參閱 DAO 說明 》 的 「 ForeignName 屬性 」 的主題。m_strSourceField
指示原始 DAO field 物件的 tabledef、 資料錄集或一個 querydef 物件所包含的資料來源之欄位的名稱。 這個屬性指出 field 物件相關聯的原始欄位名稱。 例如,您可以使用這個屬性來判斷原始來源中查詢欄位的名稱,與基準資料表中欄位名稱無關的資料。 如需詳細資訊,請參閱 DAO 說明 》 的主題"SourceField,SourceTable 屬性"。 您可以設定此屬性,如 tabledef 與 CDaoTableDef::CreateField。m_strSourceTable
表示做為原始的 DAO field 物件的 tabledef、 資料錄集或一個 querydef 物件所包含的資料來源的資料表名稱。 這個屬性指出原始 field 物件相關聯的資料表名稱。 例如,您可以使用這個屬性來判斷原始來源中查詢欄位的名稱,與基準資料表中欄位名稱無關的資料。 如需詳細資訊,請參閱 DAO 說明 》 的主題"SourceField,SourceTable 屬性"。 您可以設定此屬性,如 tabledef 與 CDaoTableDef::CreateField。m_strValidationRule
驗證變更或新增到資料表的欄位中的資料值。 如需詳細資訊,請參閱 DAO 說明 》 的 「 驗證規則屬性 」 的主題。 您可以設定此屬性,如 tabledef 與 CDaoTableDef::CreateField。如需有關 tabledefs 的相關資訊,請參閱 m_strValidationRule 成員的 CDaoTableDefInfo 結構。
m_strValidationText
值,這個值指定的文字,如果 DAO field 物件的值不符合 [驗證規則] 屬性設定值所指定的驗證規則,會顯示您的應用程式的訊息。 如需詳細資訊,請參閱 「 [驗證文字] 屬性"DAO 說明 》 的主題。 您可以設定此屬性,如 tabledef 與 CDaoTableDef::CreateField。m_strDefaultValue
DAO 欄位物件的預設值。 建立新的資料錄時,[預設值] 屬性設定值會自動做為值輸入欄位。 如需詳細資訊,請參閱 DAO 說明 》 的 「 預設值] 屬性 」 的主題。 您可以設定此屬性,如 tabledef 與 CDaoTableDef::CreateField。
備註
主要、 次要和所有上述參考表示傳回的資訊如何GetFieldInfo類別中的成員函式 CDaoTableDef, CDaoQueryDef,以及 CDaoRecordset。
Field 物件並不表示由 MFC 類別。 相反的基礎 MFC 物件,下列類別的 DAO 物件會包含集合由 field 物件: CDaoTableDef, CDaoRecordset,以及 CDaoQueryDef。 這些類別提供成員函式來存取欄位的資訊,某些個別項目,或者您也可以存取它們的拼字與CDaoFieldInfo物件藉由呼叫GetFieldInfo包含物件的成員函式。
除了用於檢查物件屬性,您也可以使用CDaoFieldInfo tabledef 中建立新的欄位的輸入的參數的建構。 這項工作,還有更簡單的選項,但如果您希望更精細的控制,您可以使用的版本 CDaoTableDef::CreateField ,會使用CDaoFieldInfo參數。
所擷取的資訊GetFieldInfo類別成員函式 (包含的欄位) 儲存在CDaoFieldInfo結構。 呼叫GetFieldInfo field 物件會儲存在其 Fields 集合中包含物件的成員函式。 CDaoFieldInfo也會定義Dump成員函式,在偵錯組建。 您可以使用Dump來傾印內容的CDaoFieldInfo物件。
需求
標頭: afxdao.h