分享方式:


CDaoFieldInfo 結構

結構 CDaoFieldInfo 包含針對數據存取物件所定義之欄位物件的相關信息(DAO)。

注意

DAO 可透過 Office 2013 支援。 DAO 3.6 是最終版本,且被視為過時。

語法

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 位元組

  • dbInteger

  • dbLong

  • dbCurrency 貨幣;請參閱 MFC 類別 COleCurrency

  • dbSingle

  • dbDouble

  • dbDate 日期/時間;請參閱 MFC 類別 COleDateTime

  • dbText 發短信;請參閱 MFC 類別 CString

  • dbLongBinary 長二進位檔 (OLE 物件):您可能想要使用 MFC 類別 CByteArrayCLongBinary 而不是 類別,因為 CByteArray 更豐富且更容易使用。

  • dbMemo 備忘錄;請參閱 MFC 類別 CString

  • dbGUID 全域唯一標識碼/通用唯一標識符,與遠端過程調用搭配使用。 如需詳細資訊,請參閱 DAO 說明中的「類型屬性」主題。

注意

請勿針對二進位數據使用字串數據類型。 這會導致您的數據通過 Unicode/ANSI 轉譯層,導致額外負荷增加,而且可能未預期的轉譯。

m_lSize
值,表示包含文字的 DAO 位元段物件大小上限,以位元組為單位,或是包含文字或數值之欄位物件的固定大小。 如需詳細資訊,請參閱 DAO 說明中的「大小屬性」主題。 大小可以是下列其中一個值:

類型 大小 (位元組) 描述
dbBoolean 1 個位元組 是/否(與 True/False 相同)
dbByte 1 Byte
dbInteger 2 整數
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、recordset、querydef 或 index 物件所包含的欄位物件特性。 傳回的值可以是這些常數的總和,使用位 OR (|) 運算子建立C++:

  • dbFixedField 欄位大小是固定的(數值欄位的預設值)。

  • dbVariableField 欄位大小是可變的(僅限文字欄位)。

  • dbAutoIncrField 新記錄的域值會自動遞增為無法變更的唯一長整數。 僅支援 Microsoft Jet 資料庫數據表。

  • dbUpdatableField 域值可以變更。

  • dbDescending 欄位會以遞減方式排序(Z - A 或 100 - 0) 順序(僅適用於索引物件的 Fields 集合中的欄位物件;在 MFC 中,索引物件本身包含在 tabledef 物件中)。 如果您省略這個常數,字段會以遞增方式排序 (A - Z 或 0 - 100) 順序 (預設值)。

檢查此屬性的設定時,您可以使用 C++ 位 AND 運算子 (&) 來測試特定屬性。 設定多個屬性時,您可以結合適當的常數與位 OR (|) 運算子來結合它們。 如需詳細資訊,請參閱 DAO 說明中的「屬性屬性」主題。

m_nOrdinalPosition
值,指定您希望 DAO 字段物件表示的欄位相對於其他欄位顯示的數字順序。 您可以使用 CDaoTableDef::CreateField 來設定此屬性。 如需詳細資訊,請參閱 DAO 說明中的主題。

m_bRequired
指出 DAO 欄位物件是否需要非 Null 值。 如果此屬性為TRUE,則字段不允許 Null 值。 如果 Required 設定為 FALSE,欄位可以包含 Null 值,以及符合 AllowZeroLength 和 ValidationRule 屬性設定所指定條件的值。 如需詳細資訊,請參閱 DAO 說明中的主題。 您可以使用 CDaoTableDef::CreateField 為 tabledef 設定此屬性。

m_bAllowZeroLength
指出空字串 (“”) 是否為具有 Text 或 Memo 數據類型之 DAO 欄位物件的有效值。 如果此屬性為TRUE,空字串就是有效的值。 您可以將此屬性設定為 FALSE,以確保您無法使用空字串來設定欄位的值。 如需詳細資訊,請參閱 DAO 說明中的主題。 您可以使用 CDaoTableDef::CreateField 為 tabledef 設定此屬性。

m_lCollatingOrder
指定文字中字串比較或排序的排序順序順序。 如需詳細資訊,請參閱 DAO 說明中的<自定義數據存取的 Windows 登錄設定>主題。 如需傳回之可能值的清單,請參閱 m_lCollatingOrder CDaoDatabaseInfo 結構的成員。 您可以使用 CDaoTableDef::CreateField 為 tabledef 設定此屬性。

m_strForeignName
在關聯中,值會指定對應至主數據表中欄位之外部數據表中 DAO 欄位物件的名稱。 如需詳細資訊,請參閱 DAO 說明中的主題。

m_strSourceField
指出由 tabledef、recordset 或 querydef 物件所包含之 DAO 字段物件之原始數據源的功能變數名稱。 這個屬性表示與欄位對象相關聯的原始功能變數名稱。 例如,您可以使用這個屬性來判斷查詢欄位中數據的原始來源,其名稱與基礎表中欄位的名稱無關。 如需詳細資訊,請參閱 DAO 說明中的主題。 您可以使用 CDaoTableDef::CreateField 為 tabledef 設定此屬性。

m_strSourceTable
指出 tabledef、recordset 或 querydef 物件所包含之 DAO 欄位物件之原始數據源的數據表名稱。 這個屬性表示與欄位對象相關聯的原始資料表名稱。 例如,您可以使用這個屬性來判斷查詢欄位中數據的原始來源,其名稱與基礎表中欄位的名稱無關。 如需詳細資訊,請參閱 DAO 說明中的主題。 您可以使用 CDaoTableDef::CreateField 為 tabledef 設定此屬性。

m_strValidationRule
值,會在變更或加入數據表時驗證欄位中的數據。 如需詳細資訊,請參閱 DAO 說明中的主題。 您可以使用 CDaoTableDef::CreateField 為 tabledef 設定此屬性。

如需 tabledefs 的相關信息,請參閱 m_strValidationRule CDaoTableDefInfo 結構的成員

m_strValidationText
值,指定當 DAO 字段物件的值不符合 ValidationRule 屬性設定所指定的驗證規則時,應用程式所顯示的訊息文字。 如需詳細資訊,請參閱 DAO 說明中的主題。 您可以使用 CDaoTableDef::CreateField 為 tabledef 設定此屬性。

m_strDefaultValue
DAO 欄位對象的預設值。 建立新記錄時,DefaultValue 屬性設定會自動輸入為字段的值。 如需詳細資訊,請參閱 DAO 說明中的主題。 您可以使用 CDaoTableDef::CreateField 為 tabledef 設定此屬性。

備註

主要、次要和上述的參考會指出成員函式在 CDaoTableDef、CDaoQueryDefCDaoRecordset 類別中傳回GetFieldInfo資訊的方式。

欄位物件不會以 MFC 類別表示。 相反地,下列類別之 MFC 對象的基礎 DAO 物件包含欄位物件的集合:CDaoTableDefCDaoRecordsetCDaoQueryDef。 這些類別會提供成員函式來存取某些個別的欄位資訊專案,或者您可以藉由呼叫GetFieldInfo包含對象的成員函式來一次存取CDaoFieldInfo它們。

除了用來檢查物件屬性之外,您也可以使用 CDaoFieldInfo 來建構輸入參數,以在 tabledef 中建立新的字段。 此工作可以使用更簡單的選項,但如果您想要更精細的控制,您可以使用採用CDaoFieldInfo參數的 CDaoTableDef::CreateField 版本。

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

需求

標頭: afxdao.h

另請參閱

結構、樣式、回呼和訊息對應
CDaoTableDef::GetFieldInfo
CDaoRecordset::GetFieldInfo
CDaoQueryDef::GetFieldInfo