2022年數(shù)據(jù)庫編程基礎(chǔ)_第1頁
2022年數(shù)據(jù)庫編程基礎(chǔ)_第2頁
2022年數(shù)據(jù)庫編程基礎(chǔ)_第3頁
2022年數(shù)據(jù)庫編程基礎(chǔ)_第4頁
2022年數(shù)據(jù)庫編程基礎(chǔ)_第5頁
已閱讀5頁,還剩9頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

第21章數(shù)據(jù)庫編程基礎(chǔ)隨著世界信息化的發(fā)展,數(shù)據(jù)庫系統(tǒng)也被廣泛地應(yīng)用到各行各業(yè)中,如倉庫管理系統(tǒng)、人事管理系統(tǒng)和財務(wù)管理系統(tǒng)等。越來越多的企業(yè)為了節(jié)省人力成本,選擇使用信息化系統(tǒng)進行工作業(yè)務(wù)處理,而這些工作數(shù)據(jù)的存儲和管理往往就是要使用到數(shù)據(jù)庫。本章的主要內(nèi)容有:數(shù)據(jù)庫開發(fā)技術(shù)簡介:讀者可以學到數(shù)據(jù)庫理論的基礎(chǔ)知識,了解到SQL語言等數(shù)據(jù)庫核心理論。ODBC數(shù)據(jù)庫鏈接:讀者可以學到在VC6.0中使用ODBC進行數(shù)據(jù)庫鏈接。ADO數(shù)據(jù)庫鏈接:讀者可以學到在VC6.0中使用ADO進行數(shù)據(jù)庫鏈接。21.1數(shù)據(jù)庫開發(fā)技術(shù)簡介數(shù)據(jù)庫的應(yīng)用非常廣泛,在生產(chǎn)生活或上網(wǎng)娛樂過程中,都離不開數(shù)據(jù)庫。數(shù)據(jù)庫是存放數(shù)據(jù)的倉庫,在這個倉庫里面,數(shù)據(jù)庫的使用者可以很方便的集中管理數(shù)據(jù)。21.1.1當今常用的幾種數(shù)據(jù)庫管理系統(tǒng)DBMS計算機實質(zhì)上就是“信息處理機”,所謂的信息包括:文字、圖片、音頻和視頻等一切具有特定意義的符號或記錄。而計算機從誕生之日起就要跟這些數(shù)據(jù)打交道,最初的數(shù)據(jù)管理系統(tǒng)稱為“文件系統(tǒng)”,即將數(shù)據(jù)以文件列表的方式存放,后來為了讓數(shù)據(jù)管理規(guī)范化,開發(fā)了數(shù)據(jù)庫管理系常DBMS)。與數(shù)據(jù)庫知識相關(guān)的一些基本概念有:數(shù)據(jù):文字、圖片、音頻和視頻等一切具有特定意義的符號或記錄。數(shù)據(jù)庫:也稱為數(shù)據(jù)倉庫,是存放數(shù)據(jù)的物理的或邏輯的介質(zhì)。數(shù)據(jù)庫管理系統(tǒng)(DBMS):管理數(shù)據(jù)庫的專用數(shù)據(jù)管理軟件。數(shù)據(jù)庫管理員(DBA):具有管理數(shù)據(jù)庫權(quán)限的人。根據(jù)功能級別和數(shù)據(jù)管理性能,當今常用的數(shù)據(jù)庫管理系統(tǒng)(DBMS)可以分為3類:大型數(shù)據(jù)庫:Oracle、DB2。中大型數(shù)據(jù)庫:Sybase、Informix、SqlServer。小型數(shù)據(jù)庫:Access、Sybasesql、Anywhere、dbf、execl。21.1.4ODBC、DAO和ADO技術(shù)簡介如前文所述,序列化實際上就是將要保存的數(shù)據(jù)在程序關(guān)閉之前寫入磁盤,而需要讀取時,再從磁盤寫入到內(nèi)存中進行處理,顯然,如果要處理的數(shù)據(jù)比系統(tǒng)可用的內(nèi)存大(系統(tǒng)可用的內(nèi)存可以由物理內(nèi)存和虛擬內(nèi)存組成),則序列化是無效的。另外,就算是待處理的數(shù)據(jù)能夠順利裝入內(nèi)存,也沒有必要將所有的數(shù)據(jù)都裝入內(nèi)存處理。微軟公司的ADO(ActiveXDataObjects)是一個用于存取數(shù)據(jù)源的COM組件。它提供了編程語言和統(tǒng)一數(shù)據(jù)訪問方式OLEDB的一個中間層。允許開發(fā)人員編寫訪問數(shù)據(jù)的代碼而不用關(guān)心數(shù)據(jù)庫是如何實現(xiàn)的,而只用關(guān)心到數(shù)據(jù)庫的連接。訪問數(shù)據(jù)庫的時候,關(guān)于SQL的知識不是必要的,但是特定數(shù)據(jù)庫支持的SQL命令仍可以通過ADO中的命令對象來執(zhí)行。ODBC是VC6.0集成開發(fā)環(huán)境中較常用的數(shù)據(jù)庫鏈接方式,VC6.0的應(yīng)用程序向?qū)槊總€數(shù)據(jù)庫的表生成一個Set類,通過Set類的對象來進行數(shù)據(jù)庫的訪問。21.2.1ODBC概述ODBC(OpenDatabaseConnectivity)中文意思是開放數(shù)據(jù)庫互連。一個基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的數(shù)據(jù)庫操作由對應(yīng)的DBMS的ODBC驅(qū)動程序完成。也就是說,不論是FoxPro、Access,MYSQL還是Oracle數(shù)據(jù)庫,均可用ODBCAPI進行訪問,而API是相對固定的,因此大大縮短了使用ODBC進行數(shù)據(jù)庫信息系統(tǒng)研發(fā)的學習周期。由此可見,ODBC的最大優(yōu)點是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫。21.2.2ODBC類的使用使用ODBC進行數(shù)據(jù)庫程序設(shè)計的步驟如下:

選擇“db1.mdb”數(shù)據(jù)庫 選擇“db1.mdb”庫中的“student”表

在Access中創(chuàng)建表 創(chuàng)建表的屬性列和屬性類型

21.2.3ODBC數(shù)據(jù)庫操作打開上一小節(jié)創(chuàng)建的項目的源文件瀏覽器,如圖所示?!癿yODBC”項目的源文件列表

VC6.0沒有提供ADO的數(shù)據(jù)鏈接的應(yīng)用程序向?qū)?,但通過本節(jié)的學習,學會使用ADO并不困難。ADO鏈接方式實質(zhì)上就是使用了COM組件作為應(yīng)用程序和數(shù)據(jù)倉庫的中間層,就使用的方便性而言,并不遜色于ODBC方式。21.3.1ADO概述微軟公司的ADO(ActiveXDataObjects)是一個用于存取數(shù)據(jù)源的COM組件。它提供了編程語言和統(tǒng)一數(shù)據(jù)訪問方式OLEDB的一個中間層。允許開發(fā)人員編寫訪問數(shù)據(jù)庫的代碼而不用關(guān)心數(shù)據(jù)庫是如何實現(xiàn)的,而只用關(guān)心到數(shù)據(jù)庫的連接,這點跟ODBC是一樣的。訪問數(shù)據(jù)庫的時候,有無SQL的知識不是必要的,但是特定數(shù)據(jù)庫支持的SQL命令仍可以通過ADO中的命令對象來間接執(zhí)行,也就是說,使用ADO訪問數(shù)據(jù)庫,既可以使用ADO的接口進行數(shù)據(jù)庫操作,也可以通過它傳遞SQL語句進行數(shù)據(jù)庫操作。21.3.3ADO數(shù)據(jù)庫操作前文所述的數(shù)據(jù)庫連接相當于架設(shè)了一座從應(yīng)用程序通向數(shù)據(jù)庫的橋梁,架設(shè)橋梁只是手段,對數(shù)據(jù)庫進行各種操作才是目的,為了實現(xiàn)對數(shù)據(jù)庫進行自由的操作,開發(fā)者還需要做一些額外的工作。為了取得結(jié)果記錄集,定義一個指向Recordset對象的指針:_RecordsetPtrm_pRecordset;并為其創(chuàng)建Recordset對象的實例:m_pRecord

溫馨提示

  • 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)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
  • 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論