![第16節(jié)用MFC設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序_第1頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/2a8430ab-531f-4e7f-99ca-aca23aebb706/2a8430ab-531f-4e7f-99ca-aca23aebb7061.gif)
![第16節(jié)用MFC設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序_第2頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/2a8430ab-531f-4e7f-99ca-aca23aebb706/2a8430ab-531f-4e7f-99ca-aca23aebb7062.gif)
![第16節(jié)用MFC設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序_第3頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/2a8430ab-531f-4e7f-99ca-aca23aebb706/2a8430ab-531f-4e7f-99ca-aca23aebb7063.gif)
![第16節(jié)用MFC設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序_第4頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/2a8430ab-531f-4e7f-99ca-aca23aebb706/2a8430ab-531f-4e7f-99ca-aca23aebb7064.gif)
![第16節(jié)用MFC設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序_第5頁(yè)](http://file3.renrendoc.com/fileroot_temp3/2022-3/31/2a8430ab-531f-4e7f-99ca-aca23aebb706/2a8430ab-531f-4e7f-99ca-aca23aebb7065.gif)
版權(quán)說(shuō)明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、第16節(jié)用MFC設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序本章主要內(nèi)容 n數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)及數(shù)據(jù)庫(kù)系統(tǒng)。nODBC的基本概念和結(jié)構(gòu)。n使用ODBC數(shù)據(jù)庫(kù)類編寫數(shù)據(jù)庫(kù)應(yīng)用程序。n使用ADO數(shù)據(jù)庫(kù)類編寫數(shù)據(jù)庫(kù)應(yīng)用程序介紹。 數(shù)據(jù)庫(kù)系統(tǒng)及數(shù)據(jù)庫(kù)應(yīng)用程序數(shù)據(jù)庫(kù)系統(tǒng)及數(shù)據(jù)庫(kù)應(yīng)用程序n數(shù)據(jù)庫(kù)系統(tǒng)n數(shù)據(jù)庫(kù)系統(tǒng)組成 數(shù)據(jù)庫(kù)系統(tǒng)及數(shù)據(jù)庫(kù)應(yīng)用程序數(shù)據(jù)庫(kù)系統(tǒng)及數(shù)據(jù)庫(kù)應(yīng)用程序u 標(biāo)準(zhǔn)接口n數(shù)據(jù)庫(kù)應(yīng)用系統(tǒng)的設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì)數(shù)據(jù)庫(kù)應(yīng)用程序設(shè)計(jì) 數(shù)據(jù)庫(kù)系統(tǒng)及數(shù)據(jù)庫(kù)應(yīng)用程序數(shù)據(jù)庫(kù)系統(tǒng)及數(shù)據(jù)庫(kù)應(yīng)用程序VC數(shù)據(jù)庫(kù)編程nVisual C+通過(guò)若干種接口來(lái)支持關(guān)系數(shù)據(jù)庫(kù)的訪問(wèn),這些接口包括ODBC(開發(fā)式數(shù)據(jù)庫(kù)連接)、RDO(遠(yuǎn)程數(shù)
2、據(jù)對(duì)象)、DAO(數(shù)據(jù)訪問(wèn)對(duì)象)、OLE DB和ADO(ActiveX數(shù)據(jù)對(duì)象)。這些接口反映了Micorsoft對(duì)數(shù)據(jù)庫(kù)支持的發(fā)展演化過(guò)程。16.2 數(shù)據(jù)庫(kù)開發(fā)技術(shù)簡(jiǎn)介n本節(jié)簡(jiǎn)要介紹VisualC+中常用的數(shù)據(jù)庫(kù)開發(fā)技術(shù),大致分為三類,即ODBC API/MFC ODBC、DAO以及ADO。其中,MFC ODBC是MFC對(duì)ODBC API的封裝,ADO是OLE DB的高層接口。16.2.1 ODBC API/MFC ODBC技術(shù)nODBC(Open Database Conectivity,開放式數(shù)據(jù)庫(kù)互聯(lián)),實(shí)際上是一個(gè)數(shù)據(jù)庫(kù)訪問(wèn)庫(kù),它包含訪問(wèn)不同數(shù)據(jù)庫(kù)所要求的ODBC驅(qū)動(dòng)程序。如要操作F
3、oxpro數(shù)據(jù)庫(kù),要用Foxpro的ODBC驅(qū)動(dòng)程序;要訪問(wèn)DBASE,要用DBASE的ODBC驅(qū)動(dòng)程序。總之,應(yīng)用程序要操作不同類型的數(shù)據(jù)庫(kù),只要調(diào)用ODBC所支持的函數(shù),動(dòng)態(tài)鏈接到不同的驅(qū)動(dòng)程序上即可。隨著ODBC技術(shù)的推出,許多開發(fā)工具軟件都把ODBC技術(shù)集成到自己的軟件中,如,Visual basic、Visual C+、Power Builder等等。.1 ODBC的基本構(gòu)成的基本構(gòu)成16.2.2 DAO技術(shù)nDAO(Data Access Object,數(shù)據(jù)訪問(wèn)對(duì)象)是第一個(gè)面向?qū)ο蟮亟涌?,該技術(shù)最初用于像Access這樣的MicroSoft產(chǎn)品中。DAO依賴于用MicroSoft
4、 Access自動(dòng)獲得的MicroSoft Jet數(shù)據(jù)庫(kù)引擎。另外,DAO還是較早版本的Visual Basic所使用的引擎(最新版的Visual Basic和Visual C+依賴于相同的ADO/OLE-DB組合),所以如果需要支持較早的Visual Basic應(yīng)用程序,那么DAO是一個(gè)不錯(cuò)的選擇。不過(guò),目前此技術(shù)有被OLE DB/ADO取代地趨勢(shì),所以一般也不再使用。16.2.3 ADO技術(shù)nADO,即ActiveX Data Objects,是一種特殊的OLE DB客戶程序,它允許訪問(wèn)程序在Visual C+、Visual Basic、VBscript、Java等編程語(yǔ)言中訪問(wèn)。ADO是
5、微軟大力推薦使用的編程接口,在微軟已經(jīng)停止對(duì)ODBC和DAO繼續(xù)發(fā)展的今天,學(xué)習(xí)使用ADO無(wú)疑是正確的選擇。nODBC管理器n配置ODBC數(shù)據(jù)源的方法和步驟 配置配置ODBC數(shù)據(jù)源數(shù)據(jù)源nM F C 的 O D B C 類 有 C D a t a b a s e ( 數(shù) 據(jù) 庫(kù) 類 ) 、CRecordset(記錄集類)、CRecordView(可視記錄集類 ) 、 C f i e l d E x c h a n g e ( 數(shù) 據(jù) 交 換 類 ) 、CDBException(異常類)。這些類的對(duì)象相互配合完成諸如連接數(shù)據(jù)源、選擇和操縱記錄、在表單中顯示操縱數(shù)據(jù)、直接調(diào)用ODBC API函數(shù)和
6、使用SQL語(yǔ)句等工作,也可以與MFC的文檔/視圖框架結(jié)構(gòu)協(xié)同工作。 MFC的的ODBC類類nCDatabase類uCDatabase類對(duì)象提供了對(duì)數(shù)據(jù)源的連接,通過(guò)它可以對(duì)數(shù)據(jù)源進(jìn)行操作。u應(yīng)用程序要訪問(wèn)數(shù)據(jù)源提供的數(shù)據(jù),必須先創(chuàng)建一個(gè)與數(shù)據(jù)源相關(guān)聯(lián)的CDatabase類對(duì)象。u在這個(gè)類中封裝了一些與數(shù)據(jù)源進(jìn)行連接相關(guān)的操作。 MFC的的ODBC類類u例如下面的代碼創(chuàng)建了一個(gè)CDatabase對(duì)象m_db并與數(shù)據(jù)源tmsDSN進(jìn)行了連接: CDatabase m_db; /創(chuàng)建CDatabase對(duì)象/ 使用數(shù)據(jù)源tmsDSN或連接字符串ODBC;UID=sa連接 ( _T( tmsDSN ),
7、 FALSE, FALSE, _T( ODBC;DSN=tmsDSN;UID=sa ); MFC的的ODBC類類 MFC的的ODBC類類nCRecordset類nCRecordset類對(duì)象提供從數(shù)據(jù)源中提取出的記錄集。uCRecordset對(duì)象有動(dòng)態(tài)行集(dynaset)和快照集(snapshot)兩種工作方式。動(dòng)態(tài)行集能與其他用戶所做的更改保持同步??煺占瘎t是數(shù)據(jù)的一個(gè)靜態(tài)視圖。 MFC的的ODBC類類u使用CRecordset派生類的對(duì)象選擇和操縱數(shù)據(jù)源數(shù)據(jù)。例如檢查當(dāng)前記錄的數(shù)據(jù)字段,過(guò)濾、排序記錄集,編寫默認(rèn)的SQL SELECT語(yǔ)句,對(duì)選擇的記錄進(jìn)行滾動(dòng),添加、修改、刪除記錄,刷新記
8、錄集等等。u例如uCDatabase m_db;um_db.Open(_T(tmsDSN),FALSE,FALSE,u_T(ODBC; UID=sa),FALSE);uCRecordset m_set(&m_db);um_set.Open(AFX_DB_USE_DEFAULT_TYPE,uselect * from student);u./ 使用記錄集um_set.Close三;u三; MFC的的ODBC類類 MFC的的ODBC類類nCDBException類n例如n/ rs為CRecordset派生類的對(duì)象ntry 三; ncatch(CDBException * e) nAfxMe
9、ssageBox(e-m_strError, MB_ICONEXCLAMATION);ne-Delete三; /刪除CDBException對(duì)象n三;/丟失記錄位置,移到記錄集頭nreturn;nn三;小結(jié):用MFC進(jìn)行ODBC的編程過(guò)程 n(1)設(shè)計(jì)數(shù)據(jù)庫(kù)。n(2)定義ODBC數(shù)據(jù)源。n(3)創(chuàng)建應(yīng)用程序外殼。n(4)設(shè)計(jì)主窗體。n(5)將控件與數(shù)據(jù)庫(kù)字段相關(guān)聯(lián)。n(6)編寫代碼實(shí)現(xiàn)相關(guān)功能:添加新記錄功能、刪除記錄功能、對(duì)記錄排序功能、查找記錄功能等。 n顯示和處理表中的數(shù)據(jù)然后把位圖裝載到對(duì)象中:n連接兩個(gè)表nC類的使用方法在許多方面非常相似。 ODBC應(yīng)用程序?qū)嵗龖?yīng)用程序?qū)嵗?6.6
10、在Visual C+中使用ADO開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序n在應(yīng)用程序中,通過(guò)ADO和SQL語(yǔ)句的配合,可以實(shí)現(xiàn)對(duì)數(shù)據(jù)庫(kù)的一系列操作,例如創(chuàng)建數(shù)據(jù)庫(kù)、創(chuàng)建表、創(chuàng)建索引,實(shí)現(xiàn)數(shù)據(jù)庫(kù)的多重查詢、高級(jí)查詢和數(shù)據(jù)的匯總等技術(shù)。在本節(jié),將通過(guò)一個(gè)具體的實(shí)例詳細(xì)講解如何在Visual C+中,使用ADO對(duì)象開發(fā)數(shù)據(jù)庫(kù)應(yīng)用程序。16.6.1 Viusal C+對(duì)ADO的支持n為ADO操作提供了庫(kù)支持,一般情況下,每個(gè)Windows操作系統(tǒng)的Program FilesCommon FilesSystemado目錄下都有一個(gè)msado*.dll文件,根據(jù)Windows版本的不同,該文件可以是、或。在使用進(jìn)行ADO編程時(shí)
11、,可以借助的import預(yù)編譯指令,將該庫(kù)文件引用到工程里,從而使msado*.dll庫(kù)里的數(shù)據(jù)和函數(shù)聲明被應(yīng)用的代碼所使用。16.6.2 創(chuàng)建數(shù)據(jù)庫(kù)與實(shí)例工程n實(shí)例數(shù)據(jù)庫(kù)采用Access202X數(shù)據(jù)庫(kù)。啟動(dòng)Access,執(zhí)行“文件”“新建”菜單命令,創(chuàng)建一個(gè)空的數(shù)據(jù)庫(kù)??梢栽贏ccess中,添加設(shè)計(jì)數(shù)據(jù)庫(kù)表,也可以在VC程序中通過(guò)ADO創(chuàng)建,本例采用后者。16.6.3 引入ADO對(duì)象nADO是一組動(dòng)態(tài)鏈接庫(kù),因此在使用之前還必須導(dǎo)入ADO并且初始化。在MFC應(yīng)用里,一般在應(yīng)用類的InitInstance成員函數(shù)里初始化OLE/COM庫(kù)環(huán)境比較合適。初始化過(guò)程非常簡(jiǎn)單,只需簡(jiǎn)單地調(diào)用AfxOl
12、eInit函數(shù)即可。16.6.4 連接數(shù)據(jù)源n在工程中引入ADO對(duì)象后,就可以通過(guò)Connection對(duì)象連接數(shù)據(jù)源了。16.6.5 開發(fā)技術(shù)連接對(duì)象(Connection)n連接對(duì)象表示到數(shù)據(jù)源的打開的連接,同時(shí)也表示與數(shù)據(jù)源的唯一會(huì)話。通常在使用ADO操作數(shù)據(jù)庫(kù)之前必須首先創(chuàng)建一個(gè)連接對(duì)象。連接對(duì)象為ADO對(duì)數(shù)據(jù)源的操作提供了一個(gè)操作環(huán)境,還可以用于操作事務(wù)處理。16.6.6 創(chuàng)建表并添加數(shù)據(jù)n在實(shí)例中,創(chuàng)建Access數(shù)據(jù)庫(kù)時(shí),并沒(méi)有創(chuàng)建數(shù)據(jù)庫(kù)表。在程序的初始化函數(shù)OnInitDialog中,通過(guò)連接對(duì)象執(zhí)行SQL語(yǔ)句創(chuàng)建一個(gè)數(shù)據(jù)庫(kù)表studentinfo,該表包含四個(gè)字段,分別為stuNo、stuname、stuaddress和stuphone,類型均為TEXT類型。16.6.7 開發(fā)技術(shù)ADO對(duì)象命令的執(zhí)行n在ADO對(duì)象中,有兩種不同的方法可以執(zhí)行命令。第一種方法是調(diào)用Connection對(duì)象的Execute函數(shù),實(shí)例中使
溫馨提示
- 1. 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫(kù)網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 2025年度智能電網(wǎng)設(shè)備加工與性能評(píng)估合同
- 2025年合同管理系統(tǒng)與客戶關(guān)系維護(hù)合同
- 2025年度智能家居升級(jí)改造工程合同模板
- 2025年度會(huì)議費(fèi)預(yù)算調(diào)整與控制管理合同范本
- 2025年度建筑工程泥工勞務(wù)分包施工安全防護(hù)合同
- 2025年度戶外廣告設(shè)施清潔與維護(hù)服務(wù)合同
- 2025年度智慧交通系統(tǒng)開發(fā)與應(yīng)用合同
- 2025年度管子配件知識(shí)產(chǎn)權(quán)授權(quán)合同
- 2025年度商業(yè)秘密保護(hù)合同范本及實(shí)施細(xì)則
- 2025年度美發(fā)店員工培訓(xùn)與入股合作合同
- 五年級(jí)數(shù)學(xué)(小數(shù)乘除法)計(jì)算題專項(xiàng)練習(xí)及答案匯編
- 上海市楊浦區(qū)2024-2025學(xué)年八年級(jí)上學(xué)期英語(yǔ)期末考卷(含筆試答案無(wú)聽力答案、原文及音頻)
- 2024年蘇州農(nóng)業(yè)職業(yè)技術(shù)學(xué)院高職單招語(yǔ)文歷年參考題庫(kù)含答案解析
- 課題申報(bào)參考:法國(guó)漢學(xué)家弗朗索瓦·朱利安對(duì)中國(guó)山水畫論的闡釋研究
- 2024年09月2024年中國(guó)農(nóng)業(yè)發(fā)展銀行總行部門秋季校園招聘(22人)筆試歷年參考題庫(kù)附帶答案詳解
- 2025年北京生命科技研究院招聘筆試參考題庫(kù)含答案解析
- 銀行金融機(jī)構(gòu)銀行金融服務(wù)協(xié)議
- GB/T 27697-2024立式油壓千斤頂
- 《消防機(jī)器人相關(guān)技術(shù)研究》
- 游泳館安全隱患排查
- 《媒介社會(huì)學(xué)》課件
評(píng)論
0/150
提交評(píng)論