




版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、 1、引言隨著計算機技術的日新月異,數據信息的存儲和處理技術得到了空前的發展,使得計算機軟件在開發過程中與數據庫的操作結合的越來越緊密,而Visual C+6.0 作為一種綜合性最高、最強大的軟件開發工具之一,它對數據庫的操作技術發展的異常迅速,并提供了多種的數據庫訪問技術:ODBC API、MFCODBC、DAO、OLE DB、ADO等。而目前比較常用的技術則是ADO數據庫訪問技術。本文先對以上不同VC數據庫訪問技術作出簡要介紹,而后將會對ADO數據庫訪問技術作出詳細介紹。2、Visual C+ 6.0 下數據庫開發技術概述2.1 ODBC(Open DataBase Connectivit
2、y)目前,ODBC已經成為一種標準,它主要通過一套統一的數據庫操作接口(API)實現對數據庫的訪問,應用程序可以通過這些統一的函數接口,訪問任何提供了ODBC 驅動程序的數據庫,現在基本上所有的關系型數據庫都提供了ODBC 驅動程序,使得ODBC 技術在數據庫操作中應用十分廣泛,因此,使用ODBC可訪問任何關系型數據庫,但利用ODBC 訪問非關系型數據庫及其他對象數據庫卻很難實現。它建立了一組規范,并提供了一組對數據庫訪問的標準API(應用程序編程接口)。這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。然而,ODBC是一種趨
3、于底層的數據庫訪問技術,所以在應用程序開發上無法或者很難完成數據庫的高層操作。ODBC 使用層次的方法來管理數據庫,在數據庫通信結構的每一層,對可能出現依賴數據庫產品自身特性的地方,ODBC 都引入一個公共接口以解決潛在的不一致性,從而很好地解決了基于數據庫系統應用程序的相對獨立性,這也是ODBC 一經推出就獲得巨大成功的重要原因之一。2.2 MFC ODBC(MFC Open DataBase Connectivity)在實際應用中,由于在直接使用ODBC 所提供的API 對數據庫進行訪問時,會讓程序員在實現過程中編寫大量的代碼,而Visual C+ 通過對ODBC 所提供的API 函數進行
4、封裝成為MFC ODBC 中的幾個類,這樣更加符合面向對象的程序開發思想,使得MFC能夠很方便地創建和設計ODBC的數據庫應用程序。實際上,MFC ODBC 數據庫訪問技術就是在ODBC 所提供的數據庫訪問接口之外再加上一層MFC的外殼,使得在實際應用中更加方便而已。2.3 DAO(DataBase Access Object)DAO數據訪問對象是第一個具有面向對象特征的接口,它引入Microsoft Jet 數據庫引擎(最早是給Microsoft Access 所使用,現在已經支持其他數據庫)來實現對數據庫的訪問,它允許程序員通過ODBC 直接連接到Access 表上,所以說DAO 技術更適
5、用于單系統或者本地小范圍分布使用。DAO模式的:為了建立一個健壯的應用,應該將所有對數據源的訪問操作抽象封裝在一個公共API中。用程序設計的語言來說,就是建立一個接口,接口中定義了此應用程序中將會用到的所有事務方法。在這個應用程序中,當需要和數據源進行交互的時候則使用這個接口,并且編寫一個單獨的類來實現這個接口在邏輯上對應這個特定的數據存儲。DAO這種模型是設計關系數據庫系統結構的對象類的集合,它提供了完整的管理一個關系型數據庫所需要的全部操作的屬性和方法,VC 下使用DAO 對數據庫進行訪問和操作,是借助于DAO 中所封裝的各個不同的類的協同工作,給數據庫應用開發人員提供了豐富的數據庫操作手
6、段。2.4 OLE DB(Object Link and Embedding DataBase)隨著越來越多的數據亦非關系行格式存儲,為了實現對不同的數據庫的訪問時采用統一的訪問接口,微軟提出的OLEDB 數據庫訪問技術即應運而生了,它是一種基于組件對象模型(COM)的新的數據庫接口,這是微軟在其傳統的系列數據庫API上的最新補充之一,這種技術的特點在于對所有數據庫文件都提供了統一的調用接口,因此使用OLE DB 所提供的數據庫接口函數既可以訪問關系數據庫,也可以訪問非關系數據庫。簡單的說,OLE DB 是一種技術標準,它為任何數據源中的數據信息提供了統一的訪問標準,而這種標準則是通過一組C+
7、 API 函數來實現的,就像ODBC 標準中的ODBC API 一樣,但OLE DB 的API 是符合COM 標準的,是基于對象的。然而OLE DB 技術雖然封裝了ODBC 的數據庫操作,但仍然屬于數據庫訪問技術中的底層接口,盡管它與ODBC 相比有很大的優越性,但程序員在開發過程中仍需要編寫大量的代碼,但是在VC+ 6.0 中提供的ATL模板能夠簡化其復雜性,避免了程序員在實際操作中與底層API的接觸,提高了編寫程序的靈活性。2.5 ADO(ActiveX Data Object) ADO是微軟提出的又一新型數據庫訪問技術接口,它是在OLE DB 技術的基礎上,對其所提供的接口再次進行封裝,
8、繼承了OLE DB的很多優點,但與之不同的是它屬于數據庫的高層次訪問技術,使用起來更為方便,利用ADO 對象對數據庫進行操作,能夠使得數據應用程序開發更為方便和簡化。目前在使用VC 6.0 開發的數據庫應用程序中,此類方法最為常見,下面將主要對ADO 技術在開發數據庫應用程序中的使用方法做出詳細介紹。3、基于VC+6.0的ADO技術數據庫訪問方式ADO 作為一種新的數據庫訪問技術,它雖然封裝了OLEDB 所提供的所有接口,所不同的是ADO 屬于數據庫的高層次數據庫訪問技術,而OLE DB則屬于數據庫的底層訪問技術,所以在使用ADO 對數據庫進行訪問的操作時,程序員可以實現更高層的數據交互,同時
9、也保留了MFC/ODBC 和DAO 等一些傳統的數據庫訪問技術的優點。ADO向我們提供了一個熟悉的,高層的對OLE DB的Automation封裝接口。對那些熟悉RDO的程序員來說,你可以把OLE DB比作是ODBC驅動程序。如同RDO對象是ODBC驅動程序接口一樣,ADO對象是OLE DB的接口;如同不同的數據庫系統需要它們自己的ODBC驅動程序一樣,不同的數據源要求它們自己的OLE DB提供者(OLE DB provider)。目前,雖然OLE DB提供者比較少,但微軟正積極推廣該技術,并打算用OLE DB取代ODBC。 ADO向VB程序員提供了很多好處。包括易于使用,熟悉的界面,高速度以
10、及較低的內存占用。同傳統的數據對象層次(DAO和RDO)不同,ADO可以獨立創建。因此你可以只創建一個"Connection"對象,但是可以有多個,獨立的"Recordset"對象來使用它。ADO針對客戶服務器以及WEB應用程序作了優化。3.1 原理ADO的對象模型簡化了對對象的操作,因為它不依賴于對象之間的層次關系,應用時只關心所創建和使用的對象,不需要了解其父類對象。其實就是我們在使用ADO 技術對數據庫中數據進行操作時,都是通過特定的類(或者說是對象)來實現的。它提供了編程語言和統一數據訪問方式OLE DB的一個中間層。允許開發人員編寫訪問數據的代
11、碼而不用關心數據庫是如何實現的,而只用關心到數據庫的連接。訪問數據庫的時候,關于SQL的知識不是必要的,但是特定數據庫支持的SQL命令仍可以通過ADO中的命令對象來執行。例如對數據庫中的記錄集合進行操作的話,在ADO 中可以直接創建一個記錄集對象,對其操作即可,而OLE DB 則要先建立應用程序與數據源的連接才能對其進行操作訪問,這就是OLE DB屬于數據庫底層操作技術的原因。下圖為ADO訪問數據庫的過程:ADO訪問數據庫過程3.2 基本接口ADO 庫包含三個基本接口:_ConnectionPtr 接口、_Com-mandPtr接口和_RecordsetPtr接口。_ConnectionPtr
12、接口返回一個記錄集或一個空指針。通常使用它來創建一個數據連接或執行一條不返回任何結果的SQL語句,如一個存儲過程。使用_ConnectionPtr接口返回一個記錄集不是一個好的使用方法。對于要返回記錄的操作通常用RecordserPtr來實現。而用_ConnectionPtr操作時要想得到記錄條數得遍歷所有記錄,而用_RecordserPtr時不需要。CommandPtr接口返回一個記錄集。它提供了一種簡單的方法來執行返回記錄集的存儲過程和SQL 語句。在使用CommandPtr接口時,你可以利用全局_ConnectionPtr 接口,也可以在_CommandPtr接口里直接使用連接串。如果你
13、只執行一次或幾次數據訪問操作,后者是比較好的選擇。但如果你要頻繁訪問數據庫,并要返回很多記錄集,那么,你應該使用全局ConnectionPtr 接口創建一個數據連接,然后使用_CommandPtr接口執行存儲過程和SQL語句。RecordsetPtr是一個記錄集對象。與以上兩種對象相比,它對記錄集提供了更多的控制功能,如記錄鎖定、游標控制等。同CommandPtr接口一樣,它不一定要使用一個已經創建的數據連接,可以用一個連接串代替連接指針賦給_RecordsetPtr 的connection 成員變量,讓它自己創建數據連接。如果你要使用多個記錄集,最好的方法是同Command 對象一樣使用已經
14、創建了數據連接的全局_ConnectionPtr 接口,然后使用_RecordsetPtr執行存儲過程和SQL語句。RecordsetPtr是一個記錄集對象。與以上兩種對象相比,它對記錄集提供了更多的控制功能,如記錄鎖定,游標控制等。同_CommandPtr接口一樣,它不一定要使用一個已經創建的數據連接,可以用一個連接串代替連接指針賦給_RecordsetPtr的connection成員變量,讓它自己創建數據連接。如果你要使用多個記錄集,最好的方法是同Command對象一樣使用已經創建了數據連接的全局_ConnectionPtr接口,然后使用_RecordsetPtr執行存儲過程和SQL語句。
15、這三個接口在實際應用中用的十分廣泛,具體的代碼應用實現可以參考msdn 等相關介紹,這里就不再贅述。基本流程(1)初始化COM庫,引入ADO庫定義文件(2)用Connection對象連接數據庫(3)利用建立好的連接,通過Connection、Command對象執行SQL命令,或利用Recordset對象取得結果記錄集進行查詢、處理。(4)使用完畢后關閉連接釋放對象。3.3 控件在VC數據庫編程當中,控件對于數據庫中數據的前端顯示有著非常重要的作用,常用的控件有ADO Data 控件、DataList控件、DataGrid 控件等。下邊將做出簡單的使用介紹。ADO主要實現快速創建一個到數據庫的連
16、接,通常它需要與其他控件(DataList、DataGrid 等)結合使用,例如一般和Data-Grid 控件中的數據源綁定起來使用。DataGrid 控件以表格式形式顯示數據庫中的數據信息,但它需要ADO Data 控件為它提供數據源,一旦它與ADO Data 控件綁定后,程序員在使用過程中只要改變ADO Data 中的數據源,DataGrid 就會自動根據該數據源顯示數據,所以使用起來非常方便。打開一個指定的數據庫表,或定義一個基于結構化查詢語言 (SQL) 的查詢、或存儲過程、或該數據庫中的表的視圖的記錄集合。將數據字段的數值傳遞給數據綁定的控件,可以在這些控件中顯示或更改這些數值。添加
17、新的記錄,或根據對顯示在綁定的控件中的數據的任何更改來更新一個數據庫。 要創建一個客戶、或前端數據庫應用程序,應在窗體中添加 ADO Data 控件,以及其它所需要的任何 Visual Basic 控件。可以根據您的需要在窗體中放置多個 ADO Data 控件。不過,請注意,這種控件是一種相當“昂貴”的創建連接的方法,應在第一個控件至少有兩個連接,且以后的每個控件至少多一個連接時使用。通過在設計時設置一些屬性,可以用最少的代碼來創建一個數據庫應用程序。如果正在使用OLE DB 數據源,則相應的Microsoft 數據鏈接名稱(Data Link Name)(.MDL) 必須是在您的機器上創建的
18、。DataList 控件在功能上跟DataGrid 控件有相似之處,它也是以表格的形式顯示數據庫的數據信息,不同的是在數據顯示時,它要求程序員參與的比較多,程序員必須在把數據庫中的數據讀出以后,分別按項填充表格,這一點相對于DataGrid 控件顯得不是很方便,但就本人而言,用DataList數據表現形式比用DataGrid 顯得靈活。ADO Data 控件使用 Microsoft ActiveX 數據對象(ADO) 來快速建立數據綁定的控件和數據提供者之間的連接。數據綁定控件是任何具有“數據源”屬性的控件。數據提供者可以是任何符合 OLEDB 規范的數據源。使用 Visual Basic 的類模塊也可以很方便地創建子集的數據提供者。盡管可以在應用程序中直接使用 ActiveX 數據對象,但 ADO Data 控件有作為一個圖形控件的優勢(具有“向前”和“向后”按鈕),以及一個易于使用的界面,使您可以用最少的代碼創建數據庫應用程序。4、結束語綜上所述,使用Visual C+訪問數據庫的技術盡管很多,但從原理上都是大同小異,只是隨著技術的發展,在實際應用中給我們提供了更為方便的操作方法,目前ADO 這種方法比較普遍,但是其他方法在具
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
- 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 電子競技賽事平臺考核試卷
- 高校輔導員招聘考試中的有效溝通與交際策略研究試題及答案
- 行政管理師職場發展動態解讀試題及答案
- 紙容器包裝設計的綠色創新理念考核試卷
- 紙張分切技術考核試卷
- 2025年企業財務報告中的關鍵信息提取研究試題及答案
- 2023年中國鐵建投資集團有限公司公開招聘新興產業管理人員若干名筆試參考題庫附帶答案詳解
- 2024年項目管理考試備考試題及答案
- 項目管理中團隊文化的炫融試題及答案
- 2024年項目管理復習全景試題及答案
- 24雙匯系統操作手冊
- 硬筆書法:幼小銜接識字寫字教學課件
- 盤扣支模架工程監理細則
- 小學書法粵教版 五年級下冊 集字練習
- 外研版(一起)二年級英語下冊全冊教案教學設計版
- 橋梁工程梁板的預制和安裝監理實施細則
- 施工電梯租賃合同及安全協議
- 加油站臨時用電專項方案
- MTBF測試驗證規范文件和報告
- 2019第五版新版PFMEA 注塑實例
- (完整word版)計算機社團活動記錄
評論
0/150
提交評論