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 而不是類別的CLongBinaryCByteArray是更豐富、 更輕鬆地使用。

    • 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類別中的成員函式 CDaoTableDefCDaoQueryDef,以及 CDaoRecordset

Field 物件並不表示由 MFC 類別。相反的基礎 MFC 物件,下列類別的 DAO 物件會包含集合由 field 物件: CDaoTableDefCDaoRecordset,以及 CDaoQueryDef。這些類別提供成員函式來存取欄位的資訊,某些個別項目,或者您也可以存取它們的拼字與CDaoFieldInfo物件藉由呼叫GetFieldInfo包含物件的成員函式。

除了用於檢查物件屬性,您也可以使用CDaoFieldInfo tabledef 中建立新的欄位的輸入的參數的建構。這項工作,還有更簡單的選項,但如果您希望更精細的控制,您可以使用的版本 CDaoTableDef::CreateField ,會使用CDaoFieldInfo參數。

所擷取的資訊GetFieldInfo類別成員函式 (包含的欄位) 儲存在CDaoFieldInfo結構。呼叫GetFieldInfo field 物件會儲存在其 Fields 集合中包含物件的成員函式。CDaoFieldInfo也會定義Dump成員函式,在偵錯組建。您可以使用Dump來傾印內容的CDaoFieldInfo物件。

需求

標頭: afxdao.h

請參閱

參考

CDaoTableDef::GetFieldInfo

CDaoRecordset::GetFieldInfo

CDaoQueryDef::GetFieldInfo

其他資源

結構、 樣式、 回呼和訊息對應