CDaoQueryDef
類別
表示查詢定義 (或 "querydef"),通常是儲存在資料庫中的定義。
注意
透過 Office 2013 支援資料存取物件 (DAO)。 DAO 3.6 是最終版本,而且已經過時。
語法
class CDaoQueryDef : public CObject
成員
公用建構函式
名稱 | 描述 |
---|---|
CDaoQueryDef::CDaoQueryDef | 建構 CDaoQueryDef 物件。 下一次呼叫 Open 或 Create ,視您的需求而定。 |
公用方法
名稱 | 描述 |
---|---|
CDaoQueryDef::Append | 將 querydef 附加至資料庫的 QueryDefs 集合作為已儲存的查詢。 |
CDaoQueryDef::CanUpdate | 如果查詢可以更新資料庫,則傳回非零。 |
CDaoQueryDef::Close | 關閉 querydef 物件。 完成時,終結C++物件。 |
CDaoQueryDef::Create | 建立基礎 DAO querydef 物件。 使用 querydef 做為暫存查詢,或呼叫 Append 將它儲存在資料庫中。 |
CDaoQueryDef::Execute | 執行 querydef 物件所定義的查詢。 |
CDaoQueryDef::GetConnect | 傳回與 querydef 相關聯的 連接字串。 連接字串 會識別數據源。 (僅適用於 SQL 傳遞查詢,否則為空字串。 |
CDaoQueryDef::GetDateCreated | 傳回已儲存查詢建立的日期。 |
CDaoQueryDef::GetDateLastUpdated | 傳回上次更新儲存查詢的日期。 |
CDaoQueryDef::GetFieldCount | 傳回 querydef 所定義的欄位數目。 |
CDaoQueryDef::GetFieldInfo | 傳回查詢中定義之指定欄位的相關信息。 |
CDaoQueryDef::GetName | 傳回 querydef 的名稱。 |
CDaoQueryDef::GetODBCTimeout | 當執行 querydef 時,會傳回 ODBC 所使用的逾時值,這個值會決定允許查詢的動作完成多久。 |
CDaoQueryDef::GetParameterCount | 傳回為查詢定義的參數數目。 |
CDaoQueryDef::GetParameterInfo | 將指定參數的相關信息傳回查詢。 |
CDaoQueryDef::GetParamValue | 將指定參數的值傳回查詢。 |
CDaoQueryDef::GetRecordsAffected | 傳回動作查詢所影響的記錄數目。 |
CDaoQueryDef::GetReturnsRecords | 如果 querydef 所定義的查詢傳回記錄,則傳回非零。 |
CDaoQueryDef::GetSQL | 傳回 SQL 字串,指定 querydef 所定義的查詢。 |
CDaoQueryDef::GetType | 傳回查詢類型:delete、update、append、make-table 等等。 |
CDaoQueryDef::IsOpen | 如果 querydef 已開啟且可執行,則傳回非零。 |
CDaoQueryDef::Open | 開啟儲存在資料庫 QueryDefs 集合中的現有 querydef。 |
CDaoQueryDef::SetConnect | 設定 ODBC 數據源上 SQL 傳遞查詢的 連接字串。 |
CDaoQueryDef::SetName | 設定已儲存查詢的名稱,取代建立 querydef 時所使用的名稱。 |
CDaoQueryDef::SetODBCTimeout | 設定執行 querydef 時,ODBC 所使用的逾時值(用於 ODBC 查詢)。 |
CDaoQueryDef::SetParamValue | 將指定參數的值設定為查詢。 |
CDaoQueryDef::SetReturnsRecords | 指定 querydef 是否傳回記錄。 將此屬性設定為TRUE 僅適用於 SQL 傳遞查詢。 |
CDaoQueryDef::SetSQL | 設定 SQL 字串,指定 querydef 所定義的查詢。 |
公用資料成員
名稱 | 描述 |
---|---|
CDaoQueryDef::m_pDAOQueryDef | 基礎 DAO querydef 物件的 OLE 介面指標。 |
CDaoQueryDef::m_pDatabase | 與 querydef 相關聯之 CDaoDatabase 物件的指標。 querydef 可能儲存在資料庫中。 |
備註
querydef 是數據存取物件,其中包含描述查詢的 SQL 語句及其屬性,例如「建立日期」和「ODBC 逾時」。您也可以建立暫存的 querydef 物件,而不儲存它們,但方便且更有效率地儲存資料庫中常用的查詢。 CDaoDatabase 物件會維護名為 QueryDefs 集合的集合,其中包含其已儲存的 querydefs。
注意
DAO 資料庫類別與以 Open Database Connectivity (ODBC) 為基礎的 Microsoft Foundation Class (MFC) 資料庫類別不同。 所有 DAO 資料庫類別名稱都有 「CDao」 前置詞。 您仍然可以使用 DAO 類別存取 ODBC 資料來源。 一般而言,以 DAO 為基礎的 MFC 類別比以 ODBC 為基礎的 MFC 類別更有能力;DAO 型類別可以透過自己的資料庫引擎存取數據,包括透過 ODBC 驅動程式。 DAO 型類別也支援資料定義語言 (DDL) 作業,例如透過類別新增數據表,而不需要直接呼叫 DAO。
使用方式
使用 querydef 物件來處理現有的已儲存查詢,或建立新的已儲存查詢或暫存查詢:
在所有情況下,請先建構
CDaoQueryDef
物件,並提供查詢所屬 CDaoDatabase 物件的指標。然後根據您要的內容執行下列動作:
當您完成使用 querydef 物件時,請呼叫其 Close 成員函式,然後終結 querydef 物件。
提示
若要建立已儲存的查詢,最簡單的方式是使用 Microsoft Access 建立查詢,並將其儲存在資料庫中。 然後,您可以在 MFC 程式代碼中開啟並使用它們。
用途
您可以針對下列任何目的使用 querydef 物件:
若要建立
CDaoRecordset
物件若要呼叫對象的
Execute
成員函式,以直接執行動作查詢或 SQL 傳遞查詢
您可以針對任何類型的查詢使用 querydef 物件,包括 select、action、crosstab、delete、update、append、make-table、data definition、SQL 傳遞、聯集和大量查詢。 您提供的 SQL 語句內容會決定查詢的類型。 如需查詢類型的相關信息,請參閱 Execute
和 GetType
成員函式。 記錄集通常用於資料列傳回查詢,通常是使用 SELECT ...FROM 關鍵詞。 Execute
最常用於大量作業。 如需詳細資訊,請參閱 Execute
和 CDaoRecordset
。
Querydefs 和 Recordsets
若要使用 querydef 物件來建立 CDaoRecordset
物件,您通常會建立或開啟 querydef,如先前所述。 然後建構記錄集物件,當您呼叫 CDaoRecordset::Open
時,將指標傳遞至 querydef 物件。 您傳遞的 querydef 必須處於開啟狀態。 如需詳細資訊,請參閱 CDaoRecordset
類別。
除非查詢處於開啟狀態,否則您無法使用 querydef 來建立記錄集(最常見的 querydef 用法)。 藉由呼叫 Open
或 Create
,將 querydef 放入開啟狀態。
外部資料庫
Querydef 對像是使用外部資料庫引擎原生 SQL 方言的慣用方式。 例如,您可以建立 Transact SQL 查詢(如在 Microsoft SQL Server 上使用),並將其儲存在 querydef 物件中。 當您需要使用不是以 Microsoft Jet 資料庫引擎為基礎的 SQL 查詢時,您必須提供指向外部數據源的 連接字串。 具有有效 連接字串 的查詢會略過資料庫引擎,並將查詢直接傳遞至外部資料庫伺服器進行處理。
提示
使用 ODBC 資料表的慣用方式是將它們附加至 Microsoft Jet (。MDB) 資料庫。
如需相關信息,請參閱 DAO SDK 中的「QueryDef 物件」、「QueryDefs 集合」和「CdbDatabase 物件」主題。
繼承階層架構
CDaoQueryDef
需求
標頭: afxdao.h
CDaoQueryDef::Append
呼叫 Create 之後呼叫這個成員函式,以建立新的 querydef 物件。
virtual void Append();
備註
Append
藉由將 物件附加至資料庫的 QueryDefs 集合,將 querydef 儲存在資料庫中。 您可以使用 querydef 做為暫存物件,而不附加它,但如果您要儲存查詢,則必須呼叫 Append
。
如果您嘗試附加暫存 querydef 物件,MFC 會擲回 CDaoException 類型的 例外狀況。
CDaoQueryDef::CanUpdate
呼叫此成員函式來判斷您是否可以修改 querydef,例如變更其名稱或 SQL 字串。
BOOL CanUpdate();
傳回值
如果您可以修改 querydef,則為非零;否則為 0。
備註
如果下列狀況,您可以修改 querydef:
它不是以開啟唯讀的資料庫為基礎。
您有資料庫的更新許可權。
這取決於您是否實作安全性功能。 MFC 不提供安全性支援;您必須直接呼叫 DAO 或使用 Microsoft Access 來實作它。 請參閱 DAO 說明中的「許可權屬性」主題。
CDaoQueryDef::CDaoQueryDef
建構 CDaoQueryDef
物件。
CDaoQueryDef(CDaoDatabase* pDatabase);
參數
pDatabase
開啟 之 CDaoDatabase 物件的指標。
備註
物件可以代表儲存在資料庫的 QueryDefs 集合中的現有 querydef、要儲存在集合中的新查詢,或暫存查詢,而不是儲存。 下一個步驟取決於 querydef 的類型:
如果物件代表現有的 querydef,請呼叫物件的 Open 成員函式來初始化它。
如果物件代表要儲存的新 querydef,請呼叫物件的 Create 成員函式。 這會將 物件新增至資料庫的 QueryDefs 集合。 然後呼叫
CDaoQueryDef
成員函式來設定物件的屬性。 最後,呼叫 Append。如果物件代表暫存 querydef(不要儲存在資料庫中),請呼叫
Create
,並傳遞查詢名稱的空字串。 呼叫Create
之後,直接設定其屬性,以初始化 querydef。 請勿呼叫Append
。
若要設定 querydef 的屬性,您可以使用 SetName、SetSQL、SetConnect、SetODBCTimeout 和 SetReturnsRecords 成員函式。
當您完成 querydef 物件時,請呼叫其 Close 成員函式。 如果您有 querydef 的指標,請使用 delete
運算符終結C++物件。
CDaoQueryDef::Close
當您完成使用 querydef 物件時,請呼叫這個成員函式。
virtual void Close();
備註
關閉 querydef 會釋放基礎 DAO 物件,但不會終結已儲存的 DAO querydef 物件或C++ CDaoQueryDef
物件。 這與 CDaoDatabase::D eleteQueryDef 不同 ,這會從 DAO 中資料庫的 QueryDefs 集合中刪除 querydef(如果不是暫時的 querydef)。
CDaoQueryDef::Create
呼叫這個成員函式,以建立新的已儲存的查詢或新的暫存查詢。
virtual void Create(
LPCTSTR lpszName = NULL,
LPCTSTR lpszSQL = NULL);
參數
lpszName
儲存在資料庫中之查詢的唯一名稱。 如需字串的詳細資訊,請參閱 DAO 說明中的
lpszSQL
定義查詢的 SQL 字串。 如果您接受 NULL 的預設值,您稍後必須呼叫 SetSQL 來設定字串。 在那之前,查詢是未定義的。 不過,您可以使用未定義的查詢來開啟記錄集;如需詳細資訊,請參閱。 必須先定義 SQL 語句,才能將 querydef 附加至 QueryDefs 集合。
備註
如果您在 lpszName 中傳遞名稱,則可以呼叫 Append,將 querydef 儲存在資料庫的 QueryDefs 集合中。 否則,對像是暫時的querydef,而且不會儲存。 在任一情況下,querydef 處於開啟狀態,而且您可以使用它來建立 CDaoRecordset 物件,或呼叫 querydef 的 Execute 成員函式。
如果您未在 lpszSQL 中提供 SQL 語句,則無法使用 來執行查詢Execute
,但可以使用它來建立記錄集。 在此情況下,MFC 會使用記錄集的預設 SQL 語句。
CDaoQueryDef::Execute
呼叫這個成員函式來執行 querydef 物件所定義的查詢。
virtual void Execute(int nOptions = dbFailOnError);
參數
nOptions
決定查詢特性的整數。 如需相關信息,請參閱 DAO 說明中的「執行方法」主題。 您可以使用位 OR 運算子 (|
) 來結合這個自變數的下列常數:
dbDenyWrite
拒絕其他使用者的寫入許可權。dbInconsistent
更新不一致。dbConsistent
一致的更新。dbSQLPassThrough
SQL 傳遞。 導致 SQL 語句傳遞至 ODBC 資料庫進行處理。dbFailOnError
預設值。 如果發生錯誤並將錯誤回報給使用者,請回復更新。dbSeeChanges
如果其他使用者正在變更您要編輯的數據,則產生運行時錯誤。
注意
如需「不一致」和「一致」一詞的說明,請參閱 DAO 說明中的「執行方法」主題。
備註
以這種方式執行所使用的 Querydef 物件只能代表下列其中一個查詢類型:
動作查詢
SQL 傳遞查詢
Execute
不適用於傳回記錄的查詢,例如選取查詢。 Execute
通常用於大量作業查詢,例如 UPDATE、 INSERT或 SECT INTO,或用於資料定義語言 (DDL) 作業。
提示
使用 ODBC 數據源的慣用方法是將數據表附加至 Microsoft Jet (。MDB) 資料庫。 如需詳細資訊,請參閱 DAO 說明中的<使用 DAO 存取外部資料庫>主題。
呼叫 querydef 物件的 GetRecordsAffected 成員函式,以判斷受最近Execute
呼叫影響的記錄數目。 例如, GetRecordsAffected
傳回執行動作查詢時已刪除、更新或插入之記錄數目的相關信息。 當串聯更新或刪除生效時,傳回的計數不會反映相關數據表中的變更。
如果您同時 dbInconsistent
包含和 或 dbConsistent
,則結果為預設值 , dbInconsistent
。
Execute
不會傳回記錄集。 在 Execute
選取記錄的查詢上使用會導致 MFC 擲回 CDaoException 類型的 例外狀況。
CDaoQueryDef::GetConnect
呼叫此成員函式,以取得與 querydef 數據源相關聯的 連接字串。
CString GetConnect();
傳回值
,CString
包含 querydef 的 連接字串。
備註
此函式只能與 ODBC 數據源和特定 ISAM 驅動程式搭配使用。 它不會與 Microsoft Jet (.MDB
) 資料庫搭配使用;在此情況下,會 GetConnect
傳回空字串。 如需詳細資訊,請參閱SetConnect
。
提示
使用 ODBC 資料表的慣用方式是將它們附加至 。MDB 資料庫。 如需詳細資訊,請參閱 DAO 說明中的<使用 DAO 存取外部資料庫>主題。
如需 連接字串 的相關信息,請參閱 DAO 說明中的
CDaoQueryDef::GetDateCreated
呼叫此成員函式以取得建立 querydef 物件的日期。
COleDateTime GetDateCreated();
傳回值
COleDateTime 物件,其中包含建立 querydef 的日期和時間。
備註
如需相關信息,請參閱 DAO 說明中的「DateCreated、LastUpdated 屬性」主題。
CDaoQueryDef::GetDateLastUpdated
呼叫這個成員函式以取得 querydef 物件上次更新的日期,當其任何屬性變更時,例如其名稱、SQL 字串或其 連接字串。
COleDateTime GetDateLastUpdated();
傳回值
COleDateTime
物件,包含上次更新 querydef 的日期和時間。
備註
如需相關信息,請參閱 DAO 說明中的「DateCreated、LastUpdated 屬性」主題。
CDaoQueryDef::GetFieldCount
呼叫這個成員函式以擷取查詢中的欄位數目。
short GetFieldCount();
傳回值
查詢中定義的欄位數目。
備註
GetFieldCount
對於在 querydef 中循環處理所有欄位很有用。 針對該目的,請搭配 GetFieldInfo
使用 GetFieldCount
。
CDaoQueryDef::GetFieldInfo
呼叫這個成員函式,以取得 querydef 中定義之欄位的各種資訊。
void GetFieldInfo(
int nIndex,
CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetFieldInfo(
LPCTSTR lpszName,
CDaoFieldInfo& fieldinfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
參數
nIndex
querydef 的 Fields 集合中所需欄位之以零起始的索引,可依索引查閱。
fieldinfo
傳回所要求資訊的 對象參考 CDaoFieldInfo
。
dwInfoOptions
指定要擷取之欄位相關信息的選項。 可用的選項會列在這裡,以及導致函式傳回的原因:
AFX_DAO_PRIMARY_INFO (預設值) 名稱、類型、大小、屬性
AFX_DAO_SECONDARY_INFO主要資訊加上:序數位置、必要、允許零長度、來源欄位、外部名稱、源數據表、定序順序
AFX_DAO_ALL_INFO主要和次要資訊加上:預設值、驗證文字、驗證規則
lpszName
字串,包含所需欄位的名稱,以便依名稱查閱。 您可以使用 CString
。
備註
如需 fieldinfo 中傳回之資訊的描述,請參閱 CDaoFieldInfo 結構。 此結構的成員對應至上述 dwInfoOptions 底下的描述性資訊。 如果您要求一個層級的資訊,您也會取得任何先前層級的資訊。
CDaoQueryDef::GetName
呼叫這個成員函式,以擷取 querydef 所表示的查詢名稱。
CString GetName();
傳回值
查詢的名稱。
備註
Querydef 名稱是唯一的用戶定義名稱。 如需 querydef 名稱的詳細資訊,請參閱 DAO 說明中的「名稱屬性」主題。
CDaoQueryDef::GetODBCTimeout
呼叫這個成員函式,在 ODBC 數據源的查詢逾時之前擷取目前的時間限制。
short GetODBCTimeout();
傳回值
查詢逾時之前的秒數。
備註
如需此時間限制的相關信息,請參閱 DAO 說明中的
提示
使用 ODBC 資料表的慣用方式是將它們附加至 Microsoft Jet (。MDB) 資料庫。 如需詳細資訊,請參閱 DAO 說明中的<使用 DAO 存取外部資料庫>主題。
CDaoQueryDef::GetParameterCount
呼叫這個成員函式,以擷取已儲存查詢中的參數數目。
short GetParameterCount();
傳回值
查詢中定義的參數數目。
備註
GetParameterCount
對於在 querydef 中循環處理所有參數很有用。 針對該目的,請搭配 GetParameterInfo
使用 GetParameterCount
。
如需相關信息,請參閱 DAO 說明中的「參數物件」、「參數集合」和「PARAMETERS 宣告」主題。
CDaoQueryDef::GetParameterInfo
呼叫這個成員函式,以取得 querydef 中定義之參數的相關信息。
void GetParameterInfo(
int nIndex,
CDaoParameterInfo& paraminfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
void GetParameterInfo(
LPCTSTR lpszName,
CDaoParameterInfo& paraminfo,
DWORD dwInfoOptions = AFX_DAO_PRIMARY_INFO);
參數
nIndex
querydef 之 Parameters 集合中所需參數之以零起始的索引,可依索引查閱。
paraminfo
傳回所要求資訊的 CDaoParameterInfo 對象的參考。
dwInfoOptions
指定要擷取之參數相關信息的選項。 可用的選項會列在這裡,以及它導致函式傳回的原因:
AFX_DAO_PRIMARY_INFO
(預設值)名稱、類型
lpszName
字串,包含所需參數的名稱,以依名稱查閱。 您可以使用 CString
。
備註
如需 中 paraminfo
傳回之資訊的描述,請參閱 CDaoParameterInfo
結構。 此結構具有對應至上述描述性信息 dwInfoOptions
的成員。
如需相關信息,請參閱 DAO 說明中的
CDaoQueryDef::GetParamValue
呼叫這個成員函式,以擷取儲存在querydef之Parameters集合中之指定參數的目前值。
virtual COleVariant GetParamValue(LPCTSTR lpszName);
virtual COleVariant GetParamValue(int nIndex);
參數
lpszName
要依名稱查閱其值的參數名稱。
nIndex
querydef 之 Parameters 集合中參數以零起始的索引,可依索引查閱。 您可以使用對 GetParameterCount 和 GetParameterInfo 的呼叫來取得此值。
傳回值
COleVariant 類別的物件,其中包含參數的值。
備註
您可以依名稱或集合中的序數位置來存取參數。
如需相關信息,請參閱 DAO 說明中的
CDaoQueryDef::GetRecordsAffected
呼叫這個成員函式,以判斷最後一次呼叫 Execute會影響多少筆記錄。
long GetRecordsAffected();
傳回值
受影響的記錄數目。
備註
當串聯更新或刪除生效時,傳回的計數不會反映相關數據表中的變更。
如需相關信息,請參閱 DAO 說明中的「RecordsAffected 屬性」主題。
CDaoQueryDef::GetReturnsRecords
呼叫這個成員函式,以判斷 querydef 是否以傳回記錄的查詢為基礎。
BOOL GetReturnsRecords();
傳回值
如果 querydef 是以傳回記錄的查詢為基礎,則為非零;否則為 0。
備註
此成員函式僅用於 SQL 傳遞查詢。 如需 SQL 查詢的詳細資訊,請參閱 Execute 成員函式。 如需使用 SQL 傳遞查詢的詳細資訊,請參閱 SetReturnsRecords 成員函式。
如需相關信息,請參閱 DAO 說明中的
CDaoQueryDef::GetSQL
呼叫這個成員函式來擷取 SQL 語句,以定義 querydef 所依據的查詢。
CString GetSQL();
傳回值
定義 querydef 所依據之查詢的 SQL 語句。
備註
您可以剖析關鍵字、資料表名稱等的字串。
如需相關信息,請參閱 DAO 說明中的
CDaoQueryDef::GetType
呼叫這個成員函式來判斷 querydef 的查詢類型。
short GetType();
傳回值
querydef 所定義的查詢類型。 如需值,請參閱。
備註
當您建立 querydef 或呼叫現有的 querydef 的 SetSQL 成員函式時,查詢類型是由您在 querydef 的 SQL 字串中指定的專案所設定。 此函式傳回的查詢類型可以是下列其中一個值:
dbQSelect
選擇dbQAction
動作dbQCrosstab
CrosstabdbQDelete
刪除dbQUpdate
更新dbQAppend
附加dbQMakeTable
Make-tabledbQDDL
數據定義dbQSQLPassThrough
傳遞dbQSetOperation
聯盟dbQSPTBulk
dbQSQLPassThrough
搭配 使用 來指定不會傳回記錄的查詢。
注意
若要建立 SQL 傳遞查詢,請勿設定 dbSQLPassThrough
常數。 當您建立 querydef 物件並設定 連接字串 時,Microsoft Jet 資料庫引擎會自動設定。
如需 SQL 字串的相關信息,請參閱 GetSQL。 如需查詢類型的相關信息,請參閱 執行。
CDaoQueryDef::IsOpen
呼叫這個成員函式,以判斷物件目前是否 CDaoQueryDef
開啟。
BOOL IsOpen() const;
傳回值
如果物件目前開啟,則為 CDaoQueryDef
非零,否則為 0。
備註
querydef 必須處於開啟狀態,才能使用它來呼叫 Execute
或 建立 CDaoRecordset
物件。 若要將 querydef 放入開啟狀態,請呼叫 Create
(針對新的 querydef) 或 Open
(針對現有的 querydef)。
CDaoQueryDef::m_pDatabase
包含與 querydef 對象相關聯的 CDaoDatabase 物件的指標。
備註
如果您需要直接存取資料庫,請使用此指標。 例如,若要取得資料庫集合中其他 querydef 或 recordset 物件的指標。
CDaoQueryDef::m_pDAOQueryDef
包含基礎 DAO querydef 物件的 OLE 介面指標。
備註
此指標是為了與其他類別的完整性和一致性而提供。 不過,因為 MFC 相當完整地封裝 DAO querydefs,所以您不太可能需要它。 如果您確實使用它,請謹慎執行。 特別是,除非您知道您正在做什麼,否則請勿變更指標的值。
CDaoQueryDef::Open
呼叫這個成員函式,以開啟先前儲存在資料庫的 QueryDefs 集合中的 querydef。
virtual void Open(LPCTSTR lpszName = NULL);
參數
lpszName
字串,包含要開啟之已儲存之 querydef 的名稱。 您可以使用 CString
。
備註
當 querydef 開啟之後,您可以呼叫其 Execute
成員函式,或使用 querydef 來建立 CDaoRecordset
物件。
CDaoQueryDef::SetConnect
呼叫這個成員函式,以設定 querydef 物件的 連接字串。
void SetConnect(LPCTSTR lpszConnect);
參數
lpszConnect
字串,包含相關聯 CDaoDatabase 物件的 連接字串。
備註
連接字串 可用來視需要將其他資訊傳遞至 ODBC 和特定 ISAM 驅動程式。 它不適用於 Microsoft Jet (.MDB
) 資料庫。
提示
使用 ODBC 資料表的慣用方式是將它們附加至 。MDB 資料庫。
在執行代表 SQL 傳遞查詢至 ODBC 數據源的 querydef 之前,請先使用 SetConnect
設定 連接字串,並呼叫 SetReturnsRecords 來指定查詢是否傳回記錄。
如需 連接字串 結構和 連接字串元件範例的詳細資訊,請參閱 DAO 說明中的
CDaoQueryDef::SetName
如果您想要變更不是暫時的 querydef 名稱,請呼叫此成員函式。
void SetName(LPCTSTR lpszName);
參數
lpszName
字串,包含相關聯 CDaoDatabase 物件中非範本查詢的新名稱。
備註
Querydef 名稱是唯一的用戶定義名稱。 您可以在 querydef 物件附加至 QueryDefs 集合之前呼叫 SetName
。
CDaoQueryDef::SetODBCTimeout
呼叫這個成員函式,以設定查詢到 ODBC 數據源逾時之前的時間限制。
void SetODBCTimeout(short nODBCTimeout);
參數
nODBCTimeout
查詢逾時之前的秒數。
備註
此成員函式可讓您覆寫連線數據源上後續作業「逾時」之前的預設秒數。作業可能會因為網路存取問題、查詢處理時間過長等而逾時。 SetODBCTimeout
如果您要變更查詢逾時值,請使用這個 querydef 執行查詢之前呼叫 。 (當 ODBC 重複使用連接時,相同連接上所有用戶端的逾時值都相同。
查詢逾時的預設值為 60 秒。
CDaoQueryDef::SetParamValue
呼叫這個成員函式,以在運行時間設定 querydef 中的參數值。
virtual void SetParamValue(
LPCTSTR lpszName,
const COleVariant& varValue);
virtual void SetParamValue(
int nIndex,
const COleVariant& varValue);
參數
lpszName
您要設定其值的參數名稱。
varValue
要設定的值;請參閱。
nIndex
參數在 querydef 的 Parameters 集合中的序數位置。 您可以使用對 GetParameterCount 和 GetParameterInfo 的呼叫來取得此值。
備註
參數必須已建立為 querydef SQL 字串的一部分。 您可以依名稱或集合中的序數位置來存取參數。
指定要設定為 COleVariant
物件的值。 如需在 對象中COleVariant
設定所需值和類型的相關信息,請參閱 COleVariant 類別。
CDaoQueryDef::SetReturnsRecords
將此成員函式呼叫為設定 SQL 傳遞查詢至外部資料庫的一部分。
void SetReturnsRecords(BOOL bReturnsRecords);
參數
bReturnsRecords
如果外部資料庫的查詢傳回記錄,則傳遞 TRUE;否則為 FALSE。
備註
在這種情況下,您必須建立 querydef,並使用其他 CDaoQueryDef
成員函式來設定其屬性。 如需外部資料庫的描述,請參閱 SetConnect。
CDaoQueryDef::SetSQL
呼叫這個成員函式,以設定 querydef 執行的 SQL 語句。
void SetSQL(LPCTSTR lpszSQL);
參數
lpszSQL
包含完整 SQL 語句的字串,適合執行。 此字串的語法取決於您查詢的目標 DBMS。 如需Microsoft Jet 資料庫引擎中使用的語法討論,請參閱 DAO 說明中的<在程式碼中建置 SQL 語句>主題。
備註
的一般用法 SetSQL
是設定 querydef 物件,以用於 SQL 傳遞查詢。 (如需目標 DBMS 上的 SQL 傳遞查詢語法,請參閱 DBMS 的檔。
另請參閱
CObject
類別
階層架構圖表
CDaoRecordset
類
CDaoDatabase
類
CDaoTableDef
類
CDaoException
類