資源描述:
《Windows程序設計教程 教學課件 作者 郭皞巖 屈景輝 廖琪梅 第13章-VC數(shù)據(jù)庫編程.ppt》由會員上傳分享,免費在線閱讀,更多相關內(nèi)容在應用文檔-天天文庫。
1、Windows程序設計教程第13章VC數(shù)據(jù)庫編程數(shù)據(jù)庫是數(shù)據(jù)管理的重要技術之一,是計算機科學的重要分支。目前,信息資源已成為各個企業(yè)、部門的重要財富和資源。作為信息系統(tǒng)核心和基礎的數(shù)據(jù)庫技術得到越來越廣泛的應用,數(shù)據(jù)庫編程已經(jīng)成為軟件生產(chǎn)的重要內(nèi)容。VisualC++通過若干種接口來支持關系數(shù)據(jù)庫的訪問,這些接口包括ODBC(開放式數(shù)據(jù)庫連接)、RDO(遠程數(shù)據(jù)對象)、DAO(數(shù)據(jù)訪問對象)、OLEDB和ADO(ActiveX數(shù)據(jù)對象)。這些接口反映了Micorsoft對數(shù)據(jù)庫支持的發(fā)展演化過程。本章重點圍繞使用ADO進行數(shù)據(jù)庫開發(fā)進行討論,介紹在ViusalC++
2、中使用ADO對象進行數(shù)據(jù)庫編程的基本知識和方法,最后給出一個數(shù)據(jù)庫系統(tǒng)開發(fā)的實例。數(shù)據(jù)庫基礎13.1數(shù)據(jù)庫開發(fā)技術簡介13.2在VisualC++中使用ADO開發(fā)數(shù)據(jù)庫應用程序13.3使用ODBC數(shù)據(jù)源連接數(shù)據(jù)庫13.313.1數(shù)據(jù)庫基礎在介紹數(shù)據(jù)庫程序開發(fā)之前,有必要簡單介紹一下數(shù)據(jù)庫及其管理、使用的相關概念。當然,對于有一定數(shù)據(jù)庫基礎的讀者可略過本節(jié)。13.1.1數(shù)據(jù)庫的基本概念數(shù)據(jù)庫是數(shù)據(jù)的集合,它由一個或多個表組成。每一個表中都存儲了對一類對象的數(shù)據(jù)描述。經(jīng)常見到的成績表就是一種表,它由行和列組成,并且可以通過名字來識別數(shù)據(jù)。列包含了列的名字、數(shù)據(jù)類型以及列
3、的其他屬性;行包含了列的記錄或者數(shù)據(jù)。下面給出一個成績表Mark,其中學號、姓名、語文、數(shù)學、英語都是列,而行包含了這個表的數(shù)據(jù),即每個人的各科成績,表的結(jié)構(gòu)如圖13.1所示。圖13.1Mark表結(jié)構(gòu)13.1.2數(shù)據(jù)庫管理系統(tǒng)(DBMS)數(shù)據(jù)庫管理系統(tǒng)(DataBaseManagementSystem,DBMS)是指數(shù)據(jù)庫系統(tǒng)中對數(shù)據(jù)進行管理的軟件系統(tǒng),它是數(shù)據(jù)庫系統(tǒng)的核心組成部分,例如FoxPro、Access、Sybase、SQLServer等都是DBMS。數(shù)據(jù)庫系統(tǒng)的一切操作,包括查詢、更新、以及各種控制,都是DBMS進行的。圖13.2所示為用戶、DBMS和數(shù)
4、據(jù)庫三者的關系。圖13.2用戶、DBMS和數(shù)據(jù)庫的關系13.1.3結(jié)構(gòu)化查詢語言(SQL)SQL(StructuredQueryLanguage,結(jié)構(gòu)化查詢語言)最早由IBM提出,是專門用來處理關系數(shù)據(jù)庫的基于文本的語言。SQL向數(shù)據(jù)庫提供了完善而一致的接口,它不是獨立的計算機語言,需要DBMS的支持方能執(zhí)行。SQL是一種標準的數(shù)據(jù)庫語言,目前大多數(shù)DBMS都支持它。1.SQL語言的分類SQL可以創(chuàng)建、維護、保護數(shù)據(jù)庫對象,并且可以操作對象中的數(shù)據(jù)。依據(jù)SQL語言的執(zhí)行功能,可以將SQL分為以下幾部分:(1)數(shù)據(jù)定義語言(DataDefinitionLanguage
5、,DDL)(2)數(shù)據(jù)查詢語言(DataQueryLanguage,DQL)(3)數(shù)據(jù)操縱語言(DataManipulationLanguage,DML):(4)數(shù)據(jù)控制語言(DataControlLanguage,DCL):(5)其他語言要素(AdditionalLanguageElements)3.SQL數(shù)據(jù)類型13.2數(shù)據(jù)庫開發(fā)技術簡介13.2.1ODBCAPI/MFCODBC技術ODBC(OpenDatabaseConnectivity,開放式數(shù)據(jù)庫互聯(lián)),實際上是一個數(shù)據(jù)庫訪問庫,它包含訪問不同數(shù)據(jù)庫所要求的ODBC驅(qū)動程序。如要操作Foxpro數(shù)據(jù)庫,要用
6、Foxpro的ODBC驅(qū)動程序;要訪問dBase,要用dBase的ODBC驅(qū)動程序??傊瑧贸绦蛞僮鞑煌愋偷臄?shù)據(jù)庫,只要調(diào)用ODBC所支持的函數(shù),動態(tài)鏈接到不同的驅(qū)動程序上即可。隨著ODBC技術的推出,許多開發(fā)工具軟件都把ODBC技術集成到自己的軟件中,如Visualbasic、VisualC++、PowerBuilder等。一個基于ODBC的應用程序?qū)?shù)據(jù)庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的數(shù)據(jù)庫操作由對應的DBMS的ODBC驅(qū)動程序完成。也就是說,不論是FoxPro、Access還是Oracle數(shù)據(jù)庫,均可用ODBCAPI進行訪問。由
7、此可見,ODBC的最大優(yōu)點是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫。圖13.3ODBC部件關系圖MFC主要包括下列ODBC類:(1)CDatabase類(2)CRecordset類(3)CRecordView類(4)CFieldExchange類(5)CDBException類13.2.2DAO技術DAO(DataAccessObject,數(shù)據(jù)訪問對象)是第一個面向?qū)ο蟮慕涌?,該技術最初用于像Access這樣的MicroSoft產(chǎn)品中。DAO依賴于用MicroSoftAccess自動獲得的MicroSoftJet數(shù)據(jù)庫引擎。另外,DAO還是較早版本的VisualBasi