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 類別 COleCurrencydbSingle
單dbDouble
雙dbDate
日期/時間;請參閱 MFC 類別 COleDateTimedbText
發短信;請參閱 MFC 類別 CStringdbLongBinary
長二進位檔 (OLE 物件):您可能想要使用 MFC 類別 CByteArray ,CLongBinary
而不是 類別,因為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 | 雙重 |
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 說明中的
m_lCollatingOrder
指定文字中字串比較或排序的排序順序順序。 如需詳細資訊,請參閱 DAO 說明中的<自定義數據存取的 Windows 登錄設定>主題。 如需傳回之可能值的清單,請參閱 m_lCollatingOrder
CDaoDatabaseInfo 結構的成員。 您可以使用 CDaoTableDef::CreateField 為 tabledef 設定此屬性。
m_strForeignName
在關聯中,值會指定對應至主數據表中欄位之外部數據表中 DAO 欄位物件的名稱。 如需詳細資訊,請參閱 DAO 說明中的
m_strSourceField
指出由 tabledef、recordset 或 querydef 物件所包含之 DAO 字段物件之原始數據源的功能變數名稱。 這個屬性表示與欄位對象相關聯的原始功能變數名稱。 例如,您可以使用這個屬性來判斷查詢欄位中數據的原始來源,其名稱與基礎表中欄位的名稱無關。 如需詳細資訊,請參閱 DAO 說明中的
m_strSourceTable
指出 tabledef、recordset 或 querydef 物件所包含之 DAO 欄位物件之原始數據源的數據表名稱。 這個屬性表示與欄位對象相關聯的原始資料表名稱。 例如,您可以使用這個屬性來判斷查詢欄位中數據的原始來源,其名稱與基礎表中欄位的名稱無關。 如需詳細資訊,請參閱 DAO 說明中的
m_strValidationRule
值,會在變更或加入數據表時驗證欄位中的數據。 如需詳細資訊,請參閱 DAO 說明中的
如需 tabledefs 的相關信息,請參閱 m_strValidationRule
CDaoTableDefInfo 結構的成員。
m_strValidationText
值,指定當 DAO 字段物件的值不符合 ValidationRule 屬性設定所指定的驗證規則時,應用程式所顯示的訊息文字。 如需詳細資訊,請參閱 DAO 說明中的
m_strDefaultValue
DAO 欄位對象的預設值。 建立新記錄時,DefaultValue 屬性設定會自動輸入為字段的值。 如需詳細資訊,請參閱 DAO 說明中的
備註
主要、次要和上述的參考會指出成員函式在 CDaoTableDef、CDaoQueryDef 和 CDaoRecordset 類別中傳回GetFieldInfo
資訊的方式。
欄位物件不會以 MFC 類別表示。 相反地,下列類別之 MFC 對象的基礎 DAO 物件包含欄位物件的集合:CDaoTableDef、CDaoRecordset 和 CDaoQueryDef。 這些類別會提供成員函式來存取某些個別的欄位資訊專案,或者您可以藉由呼叫GetFieldInfo
包含對象的成員函式來一次存取CDaoFieldInfo
它們。
除了用來檢查物件屬性之外,您也可以使用 CDaoFieldInfo
來建構輸入參數,以在 tabledef 中建立新的字段。 此工作可以使用更簡單的選項,但如果您想要更精細的控制,您可以使用採用CDaoFieldInfo
參數的 CDaoTableDef::CreateField 版本。
成員函式擷取 GetFieldInfo
的資訊(包含字段的類別)會儲存在結構中 CDaoFieldInfo
。 GetFieldInfo
呼叫包含對象的成員函式,其 Fields 集合中儲存欄位物件。 CDaoFieldInfo
也會在 Dump
偵錯組建中定義成員函式。 您可以使用 Dump
來傾印 物件的內容 CDaoFieldInfo
。
需求
標頭: afxdao.h
另請參閱
結構、樣式、回呼和訊息對應
CDaoTableDef::GetFieldInfo
CDaoRecordset::GetFieldInfo
CDaoQueryDef::GetFieldInfo