VC數(shù)據(jù)庫編程.ppt_第1頁
VC數(shù)據(jù)庫編程.ppt_第2頁
VC數(shù)據(jù)庫編程.ppt_第3頁
VC數(shù)據(jù)庫編程.ppt_第4頁
VC數(shù)據(jù)庫編程.ppt_第5頁
已閱讀5頁,還剩39頁未讀 繼續(xù)免費閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報或認(rèn)領(lǐng)

文檔簡介

1、2020/7/28,1,主要內(nèi)容,一、數(shù)據(jù)庫開發(fā)的前端工具 二、VC+ 開發(fā)數(shù)據(jù)庫應(yīng)用程序的優(yōu)勢 三、VC+中提供的數(shù)據(jù)庫訪問技術(shù) 四、基于ADO組件的數(shù)據(jù)庫編程,2020/7/28,2,一、數(shù)據(jù)庫開發(fā)的前端工具,1、Visual FoxPro 2、Visual Basic 3、Visual C+ 4、Visual J+ 5、Delphi 6、Power Builder 7、ASP 等等,2020/7/28,3,二、VC+ 開發(fā)數(shù)據(jù)庫應(yīng)用程序的優(yōu)勢,1、簡化的開發(fā)過程 2、靈活多變的開發(fā)方式 3、更快捷的數(shù)據(jù)庫訪問 4、更強(qiáng)的擴(kuò)展性,2020/7/28,4,二、VC+ 開發(fā)數(shù)據(jù)庫應(yīng)用程序的優(yōu)勢

2、,1、簡化的開發(fā)過程 由于Visual C+6.0中提供了MFC類、模板類亦即AppWizard、ClassWizard等一系列的Wizard(向?qū)В┯糜诋a(chǎn)生應(yīng)用程序,這些特點大大簡化了應(yīng)用程序的設(shè)計。使用這些技術(shù),甚至可以使開發(fā)者無須進(jìn)行編程就可以開發(fā)出一個完整的數(shù)據(jù)庫應(yīng)用程序。而且Visual C+6.0的集成開發(fā)環(huán)境中還提供了各種支持?jǐn)?shù)據(jù)庫開發(fā)的工具。使用這些工具可以幫助開發(fā)者有效地管理開發(fā)過程。,2020/7/28,5,二、VC+ 開發(fā)數(shù)據(jù)庫應(yīng)用程序的優(yōu)勢,2、靈活多變的開發(fā)方式 Visual C+6.0中提供了強(qiáng)大的開發(fā)環(huán)境可以使開發(fā)者根據(jù)自己的需要設(shè)計應(yīng)用程序的界面和功能,而無需受

3、開發(fā)環(huán)境的限制。這主要是因為Visual C+中提供了豐富的類和方法,從而使開發(fā)者可以根據(jù)應(yīng)用的特點來選擇。例如,某個應(yīng)用可以采用單文檔、多文檔或者基于對話框的形式,而不像在Access中開發(fā)的應(yīng)用那樣必須采用多文檔的界面。,2020/7/28,6,二、VC+ 開發(fā)數(shù)據(jù)庫應(yīng)用程序的優(yōu)勢,3、更快捷的數(shù)據(jù)庫訪問 為了解決ODBC開發(fā)的數(shù)據(jù)庫應(yīng)用中訪問數(shù)據(jù)庫的速度慢的問題,Visual C+6.0中引入了新的訪問技術(shù)OLE DB和ADO。OLE DB和ADO都是基于COM接口的技術(shù),使用這些技術(shù)可以避免使用ODBC訪問數(shù)據(jù)庫的瓶頸,而直接對數(shù)據(jù)庫的驅(qū)動程序進(jìn)行訪問,這大大提高了訪問速度。,2020

4、/7/28,7,二、VC+ 開發(fā)數(shù)據(jù)庫應(yīng)用程序的優(yōu)勢,4、更強(qiáng)的擴(kuò)展性 Visual C+6.0中提供了OLE技術(shù)和ActiveX技術(shù),這些技術(shù)可以增強(qiáng)開發(fā)應(yīng)用程序的能力。使用OLE技術(shù)和ActiveX技術(shù)可以使開發(fā)者利用Visual C+中提供的各種組件、控件以及第三方提供的組件來擴(kuò)展自己的應(yīng)用程序,從而使應(yīng)用程序組件化。使用這些技術(shù)可以使應(yīng)用程序具有良好的可擴(kuò)展性。,2020/7/28,8,三、VC+中提供的數(shù)據(jù)庫訪問技術(shù),1、ODBC API 2、MFC ODBC 3、DAO 4、OLE DB 5、ADO,2020/7/28,9,三、VC+中提供的數(shù)據(jù)庫訪問技術(shù),1、ODBC API O

5、DBC(Open Database Connectivity)是被廣泛應(yīng)用的用于數(shù)據(jù)庫訪問技術(shù)的應(yīng)用程序編程接口 ,ODBC是為最大的互用性而設(shè)計的,即一個應(yīng)用程序用相同的源代碼能夠訪問不同的數(shù)據(jù)庫管理系統(tǒng)(DBMS)。,2020/7/28,10,三、VC+中提供的數(shù)據(jù)庫訪問技術(shù),2、MFC ODBC MFC ODBC(Microsoft Foundation Classes ODBC) ,ODBC雖然提供了一種統(tǒng)一訪問數(shù)據(jù)庫的接口,但是直接使用ODBC API創(chuàng)建應(yīng)用程序需要編制大量的代碼所以,Visual C+中提供了MFC ODBC類,在MFC ODBC類中封裝了ODBC API,提供了

6、面向?qū)ο蟮臄?shù)據(jù)庫類。這使創(chuàng)建數(shù)據(jù)庫應(yīng)用程序的過程大大簡化。,2020/7/28,11,三、VC+中提供的數(shù)據(jù)庫訪問技術(shù),3、DAO DAO(Data Access Object) ,DAO(數(shù)據(jù)庫訪問對象)提供了一種通過程序代碼創(chuàng)建和操作數(shù)據(jù)庫的機(jī)制。多個 DAO對象構(gòu)成一個體系結(jié)構(gòu),在這個結(jié)構(gòu)中,各個DAO對象協(xié)同工作,通過Microsoft Jet數(shù)據(jù)庫訪問數(shù)據(jù)庫中的數(shù)據(jù)和數(shù)據(jù)庫的結(jié)構(gòu)定義。MFC DAO是微軟推出的用于在Visual C+中訪問Microsoft Jet數(shù)據(jù)庫文件(*mdb)的強(qiáng)有力的數(shù)據(jù)庫開發(fā)工具,它通過對DAO對象的封裝,向程序員提供了豐富的數(shù)據(jù)庫訪問和數(shù)據(jù)庫操縱手段

7、。,2020/7/28,12,三、VC+中提供的數(shù)據(jù)庫訪問技術(shù),4、OLE DB OLE DB(0bject Link and Embedding Database) ,OLE DB提供企業(yè)網(wǎng)絡(luò)級的通用數(shù)據(jù)集成,從主機(jī)到桌面,而不管數(shù)據(jù)的種類,OLEDB 比ODBC對數(shù)據(jù)的操縱更加普遍也更加有效,因為它允許更多種類的數(shù)據(jù),并且它是基于COM模型的。 OLE DB技術(shù)是Visual C+開發(fā)數(shù)據(jù)庫應(yīng)用程序所提供的新技術(shù),與傳統(tǒng)的數(shù)據(jù)庫訪問技術(shù)相比,OLE DB有兩種重要的改進(jìn):OLE DB技術(shù)基于COM接口和OLE DB為所有的文件系統(tǒng)包括關(guān)系數(shù)據(jù)庫和非關(guān)系數(shù)據(jù)庫提供了一種統(tǒng)一的接口。這些特性使

8、OLE DB技術(shù)比傳統(tǒng)的數(shù)據(jù)庫訪問技術(shù)更加優(yōu)越。,2020/7/28,13,三、VC+中提供的數(shù)據(jù)庫訪問技術(shù),5、ADO ADO (ActiveX Data Object),ADO是面向?qū)ο蟮腛LE DB,它繼承了OLE DB技術(shù)的優(yōu)點,并且,ADO對OLE DB 接口作了封裝,定義了ADO對象,使應(yīng)用程序的開發(fā)得到簡化,ADO技術(shù)屬于數(shù)據(jù)庫訪問的高層接口。,2020/7/28,14,四、基于ADO組件的數(shù)據(jù)庫編程,1、常用的ADO的對象 2、使用Access 2000創(chuàng)建數(shù)據(jù)庫 3、創(chuàng)建ADO數(shù)據(jù)庫訪問程序 4、運行含有ADO 控件的程序,2020/7/28,15,四、基于ADO組件的數(shù)據(jù)庫

9、編程,ADO是一種高層數(shù)據(jù)訪問接口,具有面向?qū)ο蟮奶攸c。使用ADO訪問數(shù)據(jù)庫,主要是使用ADO的各種對象進(jìn)行訪問,它易使用、速度快、內(nèi)存支出少,其最大好處是在因特網(wǎng)上訪問數(shù)據(jù)庫的高效性。因為ADO在關(guān)鍵的因特網(wǎng)中使用了最少的網(wǎng)絡(luò)流量,并且在客戶端和數(shù)據(jù)庫服務(wù)端使用了最少的層數(shù)??梢哉f,ADO為桌面或因特網(wǎng)上的數(shù)據(jù)庫訪問提供了一種輕量級的高性能接口。,2020/7/28,16,1.1 連接對象 (Connection),連接對象是用來與數(shù)據(jù)庫建立連接、執(zhí)行查詢以及進(jìn)行事務(wù)處理。在連接之前必須指定使用哪一個OLE DB供應(yīng)者。,1、常用的ADO的對象,2020/7/28,17,1.2命令對象,命令

10、對象(Command)可以執(zhí)行數(shù)據(jù)庫操作命令(例如查詢、修改、插入和刪除等)。用命令對象執(zhí)行一個查詢子串,可以返回一個記錄集合。,1、常用的ADO的對象,2020/7/28,18,1.3記錄集對象 (Recordset),記錄集對象用來查詢返回的結(jié)果集,它可以在結(jié)果集中添加、刪除、修改和移動記錄。當(dāng)創(chuàng)建了一個記錄集對象時,一個游標(biāo)也就自動創(chuàng)建了,查詢所產(chǎn)生的記錄將放在本地的游標(biāo)中。游標(biāo)類型有四種:僅能向前移動的游標(biāo)、靜態(tài)游標(biāo)、鍵集游標(biāo)和動態(tài)游標(biāo)。 記錄集(Recordset)對象是對數(shù)據(jù)庫進(jìn)行查詢和修改的主要對象。,1、常用的ADO的對象,2020/7/28,19,1.4字段對象 (Field

11、),字段是用于表示記錄集中的列信息,包括列值等信息。 一個記錄集包含了數(shù)據(jù)庫表中的若干行記錄。如果將記錄集看作二維網(wǎng)格,字段則將排列構(gòu)成“列”。每一字段(列)分別包括有名稱、數(shù)據(jù)類型和值的屬性,在字段中包含了來自數(shù)據(jù)源的真實數(shù)據(jù)。要修改數(shù)據(jù)源中的數(shù)據(jù),可在記錄集中修改Field對象的值,對記錄集的更改最終被傳送給數(shù)據(jù)源。,1、常用的ADO的對象,2020/7/28,20,1.5 參數(shù)對象 (Parameter),參數(shù)對象是和命令對象聯(lián)用的。當(dāng)命令對象執(zhí)行的查詢是一個帶參數(shù)的查詢時(例如想要查詢考試成績大于nGrade的學(xué)生,其中nGrade就是一個查詢參數(shù),它是一個整型變量,它的值可以動態(tài)改變

12、),就靠參數(shù)對象來為命令對象提供參數(shù)信息和數(shù)據(jù)。,1、常用的ADO的對象,2020/7/28,21,2、 使用Access 2000創(chuàng)建數(shù)據(jù)庫,Access2000是Microsoft Office套件的一個組件,是一個桌面型、小型的數(shù)據(jù)庫管理系統(tǒng)。使用Access2000管理數(shù)據(jù)庫,并不需要管理者具有專業(yè)的程序設(shè)計能力,僅通過簡單而又直觀的可視化操作就可以完成大部分的管理任務(wù),設(shè)計出功能強(qiáng)大的數(shù)據(jù)庫系統(tǒng)。,2020/7/28,22,2.1Access2000數(shù)據(jù)庫結(jié)構(gòu),Access2000是一個面向?qū)ο蟮摹⒉捎檬录?qū)動機(jī)制的關(guān)系型數(shù)據(jù)庫。在Access2000的數(shù)據(jù)庫中,任何事物都可以稱之為

13、對象。Access2000數(shù)據(jù)庫中包含七個對象:表、查詢、窗體、報表、數(shù)據(jù)訪問頁、宏和模塊。這些對象用于收集、存儲和操作各種不同的信息,每種對象都不能獨立保存,而只能作為Access數(shù)據(jù)庫的一部分。 利用ADO訪問Access數(shù)據(jù)庫,主要是訪問數(shù)據(jù)庫中的表對象,表是存放數(shù)據(jù)的真正場所。,2020/7/28,23,2.2創(chuàng)建一個空數(shù)據(jù)庫,啟動Access2000軟件后,利用向?qū)瓿山?shù)據(jù)庫文件的操作。我們選擇“空Access數(shù)據(jù)庫選項”,單擊“確定”按鈕后選擇數(shù)據(jù)庫存放位置和名稱的對話框。在文件名編輯框中輸入“student”后,單擊“創(chuàng)建”,就在指定的目錄中創(chuàng)建了一個Access2000數(shù)據(jù)

14、庫文件student.mdb,并且出現(xiàn)數(shù)據(jù)庫向?qū)Ы缑妗?2020/7/28,24,2.3創(chuàng)建數(shù)據(jù)庫表,數(shù)據(jù)庫創(chuàng)建以后,緊接著在其中創(chuàng)建存放數(shù)據(jù)的表。在student.mdb數(shù)據(jù)庫窗口中,單擊數(shù)據(jù)庫對象中的“表”按鈕,打開“表”對象列表窗口。選擇“使用設(shè)計器創(chuàng)建表”選項,然后單擊數(shù)據(jù)庫窗口的“設(shè)計”按鈕,即可打開表設(shè)計窗口?;蛘唠p擊“使用設(shè)計器創(chuàng)建表”這個選項,然后打開用來創(chuàng)建表的對話框,在其中輸入學(xué)生的一些屬性,如:學(xué)號、姓名、地址、出生日期、四級成績、VC成績。 當(dāng)關(guān)閉表設(shè)計窗口時,系統(tǒng)提示用戶給所建的表起一個名字保存,我們所起的名稱為stud_info。如圖14.1所示。,2020/7/2

15、8,25,圖14.1 stud_info表,2020/7/28,26,3、創(chuàng)建ADO數(shù)據(jù)庫訪問程序,31 創(chuàng)建工程框架 32 在工程中插入ADO控件 33 導(dǎo)入ADO Data控件和Data Grid控件 34 設(shè)置ADO Data控件屬性 35 設(shè)置ADO DataGrid控件的屬性,2020/7/28,27,3、創(chuàng)建ADO數(shù)據(jù)庫訪問程序,采用ADO控件來訪問數(shù)據(jù)庫,極大地簡化了數(shù)據(jù)庫應(yīng)用程序的開發(fā),用戶只需寫相對較少的代碼,甚至不寫一行代碼,就可以實現(xiàn)對數(shù)據(jù)庫的訪問。但是該方法的效率比較低,用戶對程序的控制比較弱,不能完全發(fā)揮ADO訪問數(shù)據(jù)庫的優(yōu)良特性。,2020/7/28,28,【例14

16、-1】創(chuàng)建一個利用ADO控件訪問數(shù)據(jù)庫的MFC應(yīng)用程序。 31 創(chuàng)建工程框架 用AppWizard向?qū)?chuàng)建一個基于對話框的應(yīng)用程序,該工程的名稱為MyADO。 32 在工程中插入ADO控件 ADO控件包括兩個:一個是ADO Data控件,用于操縱數(shù)據(jù),另一個是ADO DataGrid控件,用于顯示數(shù)據(jù)。兩者的關(guān)系類似于文檔/視圖結(jié)構(gòu)中的文檔與視圖。由于ADO控件是ActiveX控件,而不是VC的控件,它們都不像編輯框、列表框控件那樣在Control工具欄中。如果要使用ActiveX控件,在使用之前必須將它們添加到工程中。,2020/7/28,29,3.3 在工程中導(dǎo)入ADOData控件和Dat

17、a Grid控件 (1) 打開對話框資源“IDD_MYADO_DIALOG”,刪除默認(rèn)的靜態(tài)文本控件,在對話框窗口上單擊鼠標(biāo)右鍵,在彈出式菜單中選擇“Insert ActiveX Control”, 在彈出對話框中選擇“Microsoft ADO Data Control, Version 6.0”選項。單擊“OK”按鈕,則在對話框窗體上插入了ADO Data控件,如圖14.2所示。 (2)用同樣的方法,在選擇“Microsoft DataGrid Control, Version 6.0”選項。單擊“OK”按鈕,則完成了插入DataGrid控件的操作,如圖14.3所示。,2020/7/28,

18、30,圖14.2 插入ADO Data控件對話框,返回,2020/7/28,31,圖14.3 插入ADO 控件后的 對話框,2020/7/28,32,3.4 設(shè)置ADO Data控件屬性 ADO控件的屬性設(shè)置和VC中的其它控件(如編輯框控件)的方法一樣,先用鼠標(biāo)選中該控件,然后按Alt+Enter鍵,就會彈出屬性對話框,在屬性對話框中對相應(yīng)屬性進(jìn)行設(shè)置。 (1)打開ADO Data控件屬性對話框,選擇“control”選項卡。在該對話框中,先選擇“Use Connection String”,然后單擊“Build”按鈕,彈出對話框,如圖14.4所示。 (2)在對話框中,選擇“Microsoft

19、 Jet 40 OLE DB Provider”列表項,然后單擊“下一步”按鈕,彈出選擇數(shù)據(jù)庫的對話框,如圖14.5所示。,2020/7/28,33,圖14.4 ADO Data屬性對話框,返回,2020/7/28,34,圖14.5 數(shù)據(jù)庫連接屬性對話框,返回,2020/7/28,35,(3)在對話框中,單擊“選擇或輸入數(shù)據(jù)庫名稱”編輯框右邊的“”按鈕,把前面所建立的學(xué)生數(shù)據(jù)庫student.mdb選上,如圖14.6。單擊“測試連接”按鈕,如連接成功則會給出提示信息。最后單擊“確定”按鈕關(guān)閉對話框。至此,數(shù)據(jù)連接已經(jīng)建立好了,下面步驟是選擇數(shù)據(jù)源中的數(shù)據(jù),即進(jìn)行數(shù)據(jù)集的選擇。,返回,3.4 設(shè)置ADO Data控件屬性,2020/7/28,36,圖14.6 數(shù)據(jù)連接,2020/7/28,37,(4)再次打開ADO Data控件的屬性對話框,選擇“Record Source”選項卡,出現(xiàn)如圖14.6所示的對話框。在“Command Type”列表框中選擇“2-adCmdTable”列表項,在“Table Or Stored Procedure Name”組合框中把學(xué)生成績數(shù)據(jù)庫student.mdb的表“stud_info”選擇上。關(guān)閉對話框完成ADO Data控件的

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論