資源描述:
《C使用ADO及訪問數(shù)據(jù)庫》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在教育資源-天天文庫。
1、ADO數(shù)據(jù)庫編程第七章回顧設(shè)計(jì)應(yīng)用程序菜單為應(yīng)用程序添加快捷鍵彈出式菜單的設(shè)計(jì)工具欄編程狀態(tài)欄編程樹控件及列表控件的使用2本章目標(biāo)了解MFC下各種訪問數(shù)據(jù)庫的方式主要掌握ADO主要導(dǎo)出接口掌握使用ADO進(jìn)行數(shù)據(jù)庫操作3ODBC、DAO和OLEDBODBC(開放數(shù)據(jù)庫接口)是一種標(biāo)準(zhǔn)的基于SQL的接口,它提供了應(yīng)用程序與數(shù)據(jù)庫之間的接口,使得任何一個(gè)數(shù)據(jù)庫都可以通過ODBC驅(qū)動(dòng)程序與指定的DBMS相連DAO使用Jet數(shù)據(jù)庫引擎形成一系列的數(shù)據(jù)訪問對(duì)象:數(shù)據(jù)庫對(duì)象、表和查詢對(duì)象、記錄集對(duì)象等??梢源蜷_一個(gè)Access數(shù)據(jù)庫文件(MDB文件),也可直接打開一個(gè)ODBC數(shù)據(jù)源以及使用Jet引擎
2、打開一個(gè)ISAM(被索引的順序訪問方法)類型的數(shù)據(jù)源(dBASE、FoxPro、Paradox、Excel或文本文件)。OLEDB試圖提供一種統(tǒng)一的數(shù)據(jù)訪問接口,并能處理除了標(biāo)準(zhǔn)的關(guān)系型數(shù)據(jù)庫中的數(shù)據(jù)之外,還能處理包括郵件數(shù)據(jù)、Web上的文本或圖形、目錄服務(wù)(DirectoryServices)以及主機(jī)系統(tǒng)中的IMS和VSAM數(shù)據(jù)。OLEDB提供一個(gè)數(shù)據(jù)庫編程COM(組件對(duì)象模型)接口,使得數(shù)據(jù)的使用者(應(yīng)用程序)可以使用同樣的方法訪問各種數(shù)據(jù),而不用考慮數(shù)據(jù)的具體存儲(chǔ)地點(diǎn)、格式或類型。這個(gè)COM接口與ODBC相比,其健壯性和靈活性要高得多。4MFCODBC技術(shù)MFC的ODBC類對(duì)較復(fù)
3、雜的ODBCAPI進(jìn)行了封裝,提供了簡化的調(diào)用接口CDatabase類:主要功能是建立與數(shù)據(jù)源的連接,可以在整個(gè)應(yīng)用程序中共享這些信息。CRecordset類:代表從數(shù)據(jù)源選擇的一組記錄。CRecordset類允許指定要運(yùn)行的SQL查詢,它將運(yùn)行查詢并維護(hù)自數(shù)據(jù)庫返回的記錄集??梢孕薷暮透掠涗洠€可增加、刪除記錄,并將所做的變動(dòng)反饋到該數(shù)據(jù)庫中。CRecordView類:提供了一個(gè)表單視圖與某個(gè)記錄集直接相連,利用對(duì)話框數(shù)據(jù)交換(DDX)機(jī)制在記錄集與表單視圖的控件之間傳輸數(shù)據(jù)。CFieldExchange類:支持記錄字段數(shù)據(jù)交換(DFX),即記錄集字段數(shù)據(jù)成員與相應(yīng)的數(shù)據(jù)庫的標(biāo)的字
4、段之間的數(shù)據(jù)交換。CDBException類:代表ODBC類產(chǎn)生的異常。5ADOADO是目前在Windows環(huán)境中比較流行的客戶端數(shù)據(jù)庫編程技術(shù)。它是Microsoft為最新和最強(qiáng)大的數(shù)據(jù)訪問范例OLEDB而設(shè)計(jì)的,是一個(gè)便于使用的應(yīng)用程序?qū)咏涌?。ADO使用戶應(yīng)用程序能夠通過“OLEDB提供者”訪問和操作數(shù)據(jù)庫服務(wù)器中的數(shù)據(jù)。由于它兼具有強(qiáng)大的數(shù)據(jù)處理功能(處理各種不同類型的數(shù)據(jù)源、分布式的數(shù)據(jù)處理等等)和極其簡單、易用的編程接口,因而得到了廣泛的應(yīng)用。ADO技術(shù)基于COM(ComponentObjectModel,組件對(duì)象模型),具有COM組件的許多優(yōu)點(diǎn),可以用來構(gòu)造可復(fù)用應(yīng)用框架,
5、被多種語言支持,能夠訪問包括關(guān)系數(shù)據(jù)庫、非關(guān)系數(shù)據(jù)庫及所有的文件系統(tǒng)。另外,ADO還支持各種B/S與基于Web的應(yīng)用程序,具有遠(yuǎn)程數(shù)據(jù)服務(wù)RDS(RemoteDataService)的特性,是遠(yuǎn)程數(shù)據(jù)存取的發(fā)展方向。6ADO對(duì)象模型連接對(duì)象Connection通過連接可以從應(yīng)用程序中訪問數(shù)據(jù)源。連接時(shí)必須指定要連接的數(shù)據(jù)源以及連接所使用的用戶名和用戶口令。命令對(duì)象Command可以通過已建立的連接發(fā)出命令,從而對(duì)數(shù)據(jù)源進(jìn)行指定操作。一般情況下,命令可以在數(shù)據(jù)源中添加、修改或刪除數(shù)據(jù),也可以檢索數(shù)據(jù)。參數(shù)對(duì)象Parameter在執(zhí)行命令時(shí)可以指定參數(shù),參數(shù)可以在命令發(fā)布之前進(jìn)行更改。例如
6、,可以重復(fù)發(fā)出相同的數(shù)據(jù)檢索命令,但是每一次指定的檢索條件不同。記錄集對(duì)象Recordset查詢命令可以將查詢結(jié)果儲(chǔ)存在本地,這些數(shù)據(jù)以行為單位,返回?cái)?shù)據(jù)的集合被稱為記錄集字段對(duì)象Field一個(gè)記錄集包含一個(gè)或多個(gè)字段。每一字段(列)都包含名稱、數(shù)據(jù)類型和值屬性。錯(cuò)誤對(duì)象Error錯(cuò)誤可隨時(shí)在程序中發(fā)生,通常是由于無法建立連接、執(zhí)行命令或?qū)δ承顟B(tài)的對(duì)象進(jìn)行操作。屬性對(duì)象Property7ADO的4種類型的集合Connection對(duì)象具有Errors集合,包含為響應(yīng)與數(shù)據(jù)源有關(guān)的單一錯(cuò)誤而創(chuàng)建的所有Error對(duì)象。Command對(duì)象具有Parameters集合,包含應(yīng)用于Command
7、對(duì)象的所有Parameter對(duì)象。Recordset對(duì)象具有Fields集合,包含Recordset對(duì)象中所有列的Field對(duì)象。Connection對(duì)象、Command對(duì)象、Recordset對(duì)象和Field對(duì)象都具有Properties集合,它包含各個(gè)對(duì)象的Property對(duì)象。8使用ADO創(chuàng)建數(shù)據(jù)庫應(yīng)用程序在MFC應(yīng)用程序中使用ADO數(shù)據(jù)庫的一般過程是:添加對(duì)ADO的支持;創(chuàng)建一個(gè)數(shù)據(jù)源連接;對(duì)數(shù)據(jù)源中的數(shù)據(jù)庫進(jìn)行操作;關(guān)閉數(shù)據(jù)源。9引入