注意:
DAO資料庫類和MFC中基於ODBC的資料庫類是截然不同的。所有的DAO資料庫類的命名中都包括CDao前綴。但仍可以採用DAO資料庫類存取ODBC數據源。一般說來,在MFC中,基於DAO的類的處理能力比基於ODBC的類的處理能力要強;基於DAO的類可以通過ODBC數據源對應的資料庫引擎存取ODBC數據源。基於DAO的類也支持
數據定義語言(DDL)一類的操作,如通過類在資料庫中建表,而勿須直接調用DAO。
用法
查詢定義對象可用來存取當前保存的查詢或者創建一個將保存的查詢或臨時查詢。
1. | 無論怎么使用,都需要提供一個指向查詢所屬的資料庫對象的指針,並構造一個CDaoQueryDef對象; |
2. | 然後: · 如果是使用一個現存的查詢,則根據保存的查詢的名字調用查詢定義對象的成員函式Open。 · 如果是創建一個新的將保存的查詢,則提供新查詢的名字,調用查詢定義對象的成員函式Create。 · 如果是創建一個臨時查詢對象,也要調用Create,不過傳遞的查詢名是一個空字元串。 |
在使用完查詢對象之後,需要調用它的成員函式Close關閉它,然後銷毀該對象。
提示:
創建待保存的查詢的最簡單的辦法是採用Microsoft Access創建並把他們保存在資料庫中。以後就可以在MFC代碼中打開並使用它們了。
目的
查詢定義對象可用於以下目的:
· | 創建CDaoResordset對象。 |
· | 調用該對象的成員函式Execute直接執行動作查詢或SQL直通查詢。 |
查詢定義對象可用於多種類型的查詢,包括選擇、動作查詢、
交叉表(crosstab)、刪除、更新、添加、造表、數據定義、SQL直通查詢和批量查詢等。查詢的類型是由SQL語句的內容決定的。有關查詢類型的內容,請參閱成員函式Execute和GetType。
記錄集通常用於返回行的查詢,一般是那些使用了SELECT匜ROM的查詢。Execute一般用於批量操作。要了解更詳細的信息,請參閱Execute和CDaoRecordset的說明。
查詢定義和記錄集
使用查詢定義對象創建CDaoRecordset對象時,一般都是象上面介紹的那樣創建和打開一個查詢定義對象。然後構造一個
記錄集對象,在調用CDaoRecordset:: Open時傳一個指向查詢定義對象的
指針。傳遞的查詢定義必須是處於打開狀態的。調用Open或Create都會使查詢定義對象處於打開狀態。
外部資料庫
查詢定義對象是使用外部
資料庫引擎本地SQL方言的最好方法。例如,可以創建一個Transact SQL(Microsoft SQL Server中採用了)查詢並存在查詢定義對象中。在使用一個不是基於Microsoft Jet資料庫引擎的SQL查詢時,必須提供一個指明
外部數據源的連線串。具有有效連線串的查詢忽略本地資料庫引擎,而直接把查詢傳送到外部
資料庫伺服器進行處理。
提示:
使用ODBC表時最好的方式是把它們與一個Microsoft Jet資料庫聯繫起來。
#include <afxdao.h>