CDaoQueryDefInfo 結構
結構 CDaoQueryDefInfo
包含針對數據存取物件定義之 querydef 對象的相關信息(DAO)。
注意
透過 Office 2013 支援資料存取物件 (DAO)。 DAO 3.6 是最終版本,而且已經過時。
語法
struct CDaoQueryDefInfo
{
CString m_strName; // Primary
short m_nType; // Primary
COleDateTime m_dateCreated; // Secondary
COleDateTime m_dateLastUpdated; // Secondary
BOOL m_bUpdatable; // Secondary
BOOL m_bReturnsRecords; // Secondary
CString m_strSQL; // All
CString m_strConnect; // All
short m_nODBCTimeout; // All
};
參數
m_strName
唯一命名 querydef 物件。 如需詳細資訊,請參閱 DAO 說明中的「名稱屬性」主題。 呼叫 CDaoQueryDef::GetName 以直接擷取此屬性。
m_nType
值,表示 querydef 物件的作業類型。 此值可以是下列其中一項:
dbQSelect
選取:查詢會選取記錄。dbQAction
動作:查詢會移動或變更數據,但不會傳回記錄。dbQCrosstab
交叉表:查詢會以類似電子錶格的格式傳回數據。dbQDelete
刪除:查詢會刪除一組指定的數據列。dbQUpdate
更新:查詢會變更一組記錄。dbQAppend
附加:查詢會將新記錄新增至數據表或查詢的結尾。dbQMakeTable
Make-table:查詢會從記錄集建立新的數據表。dbQDDL
數據定義:查詢會影響數據表的結構或其部分。dbQSQLPassThrough
傳遞:SQL 語句會直接傳遞至資料庫後端,而不需要中繼處理。dbQSetOperation
聯集:查詢會建立快照類型 recordset 物件,其中包含兩個或多個數據表中所有指定記錄中的數據,且移除任何重複的記錄。 若要包含重複專案,請在 querydef 的 SQL 語句中新增關鍵詞 ALL 。dbQSPTBulk
dbQSQLPassThrough
搭配 使用 來指定不會傳回記錄的查詢。
注意
若要建立 SQL 傳遞查詢,您不會設定 dbQSQLPassThrough
常數。 當您建立 querydef 物件並設定 屬性時,Microsoft Jet 資料庫引擎會自動設定此 Connect
設定。
如需詳細資訊,請參閱 DAO 說明中的「類型屬性」主題。
m_dateCreated
建立 querydef 的日期和時間。 若要直接擷取建立 querydef 的日期,請呼叫 與數據表相關聯之物件的 GetDateCreated 成員函 CDaoTableDef
式。 如需詳細資訊,請參閱備註。 另請參閱 DAO 說明中的「DateCreated、LastUpdated 屬性」主題。
m_dateLastUpdated
對 querydef 進行最近變更的日期和時間。 若要直接擷取上次更新數據表的日期,請呼叫 querydef 的 GetDateLastUpdated 成員函式。 如需詳細資訊,請參閱備註。 另請參閱 DAO 說明中的「DateCreated、LastUpdated 屬性」主題。
m_bUpdatable
指出是否可以對 querydef 物件進行變更。 如果此屬性為 TRUE,則 querydef 是可更新的;否則,則不會。 可更新表示 querydef 物件的查詢定義可以變更。 如果查詢定義可以更新,則 querydef 物件的 Updateable 屬性會設定為 TRUE,即使產生的記錄集無法更新也一樣。 若要直接擷取這個屬性,請呼叫 querydef 的 CanUpdate 成員函式。 如需詳細資訊,請參閱 DAO 說明中的「可更新屬性」主題。
m_bReturnsRecords
指出 SQL 傳遞查詢是否傳回外部資料庫記錄。 如果此屬性為TRUE,查詢會傳回記錄。 若要直接擷取此屬性,請呼叫 CDaoQueryDef::GetReturnsRecords。 並非所有 SQL 傳遞查詢都會傳回外部資料庫記錄。 例如,SQL UPDATE 語句會 更新記錄而不傳回記錄,而 SQL SELECT 語句則會傳回記錄。 如需詳細資訊,請參閱 DAO 說明中的
m_strSQL
定義 querydef 物件所執行之查詢的 SQL 語句。 SQL 屬性包含 SQL 語句,可決定執行查詢時如何選取、分組和排序記錄。 您可以使用查詢來選取要包含在動態集或快照類型 recordset 物件中的記錄。 您也可以定義大量查詢來修改數據,而不傳回記錄。 您可以呼叫 querydef 的 GetSQL 成員函式,直接擷取此屬性的值。
m_strConnect
提供傳遞查詢中使用的資料庫來源相關信息。 這項資訊採用連接字串的形式。 如需連接字串的詳細資訊,以及直接擷取此屬性值的詳細資訊,請參閱 CDaoDatabase::GetConnect 成員函式。
m_nODBCTimeout
Microsoft Jet 資料庫引擎在 Open Database Connectivity (ODBC) 資料庫上執行查詢時,在逾時錯誤之前等候的秒數。 當您使用 ODBC 資料庫時,例如 Microsoft SQL Server,可能會因為網路流量或大量使用 ODBC 伺服器而延遲。 您可以指定 jet 引擎在產生錯誤之前等候 Microsoft的時間長度,而不是無限期等候。 默認逾時值為 60 秒。 您可以呼叫 querydef 的 GetODBCTimeout 成員函式,直接擷取此屬性的值。 如需詳細資訊,請參閱 DAO 說明中的
備註
querydef 是 CDaoQueryDef 類別的物件。 主要、次要和 All 的參考會指出 GetQueryDefInfo 成員函式在 類別 CDaoDatabase
中傳回資訊的方式。
CDaoDatabase::GetQueryDefInfo 成員函式擷取的資訊會儲存在 結構中CDaoQueryDefInfo
。 呼叫 GetQueryDefInfo
儲存 querydef 物件之 QueryDefs 集合中的資料庫物件。 CDaoQueryDefInfo
也會在 Dump
偵錯組建中定義成員函式。 您可以使用 Dump
來傾印 物件的內容 CDaoQueryDefInfo
。 類別 CDaoDatabase
也提供成員函式,以便直接存取 物件中 CDaoQueryDefInfo
傳回的所有屬性,因此您很少呼叫 GetQueryDefInfo
。
當您將新的欄位或參數物件附加至 querydef 物件的 Fields 或 Parameters 集合時,如果基礎資料庫不支援為新物件指定的數據類型,就會擲回例外狀況。
日期和時間設定衍生自建立或上次更新 querydef 的電腦。 在多用戶環境中,用戶應該使用 net time 命令直接從文件伺服器取得這些設定,以避免 DateCreated 和 LastUpdated 屬性設定不一致。
需求
標頭: afxdao.h