分享方式:


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

  • dbQSPTBulkdbQSQLPassThrough搭配 使用 來指定不會傳回記錄的查詢。

注意

若要建立 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

另請參閱

結構、樣式、回呼和訊息對應
CDaoQueryDef 類別
CDaoDatabase 類別