999精品在线视频,手机成人午夜在线视频,久久不卡国产精品无码,中日无码在线观看,成人av手机在线观看,日韩精品亚洲一区中文字幕,亚洲av无码人妻,四虎国产在线观看 ?

淺析ODBC

2014-07-28 22:47:32郭敏
博覽群書·教育 2014年3期

郭敏

摘 要:介紹了應(yīng)用程序通過ODBC訪問各種數(shù)據(jù)源的核心技術(shù),研究了ODBC的結(jié)構(gòu),討論了ODBC技術(shù)和OLE DB和ADO技術(shù)關(guān)系,JAVA訪問數(shù)據(jù)庫的JDBC技術(shù)。

關(guān)鍵詞:ODBC;數(shù)據(jù)源;OLD DB;ADO JDBC

數(shù)據(jù)庫技術(shù)無處不在,從最初的報(bào)表統(tǒng)計(jì)數(shù)據(jù)到現(xiàn)在的動態(tài)網(wǎng)頁、多數(shù)據(jù)源的程序設(shè)計(jì)都有數(shù)據(jù)庫技術(shù)的影子。隨著科學(xué)技術(shù)的發(fā)展,數(shù)據(jù)庫技術(shù)自身也在不斷地發(fā)展,逐漸形成了多種成熟的數(shù)據(jù)格式,主要有:SQL Server、Access、dBase、FoxPro、Excel、Oracle以及Microsoft Text。面對這么多的數(shù)據(jù)庫格式,它們內(nèi)部結(jié)構(gòu)都分別不一樣,自然各自的訪問方式也都不一樣。現(xiàn)在,程序員不需要分別開發(fā)面向不同數(shù)據(jù)庫格式的程序,因?yàn)镺DBC技術(shù)已為我們作好了這方面的準(zhǔn)備工作。

一、什么是ODBC

ODBC(Open Database Connectivity) 是”開放數(shù)據(jù)庫互連”的簡稱,是一種使用SQL的應(yīng)用程序接口(API),是微軟公司開放服務(wù)結(jié)構(gòu)(WOSA,Windows Open Services Architecture)中有關(guān)數(shù)據(jù)庫的一個(gè)組成部分,它建立了一組規(guī)范,并提供了一組對數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對SQL語言的支持,用戶可以直接將SQL語句送給ODBC。

一個(gè)基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫的操作不依賴任何DBMS,不直接與DBMS打交道,所有的數(shù)據(jù)庫操作由對應(yīng)的DBMS的ODBC驅(qū)動程序完成。也就是說,不論是FoxPro、Access還是Oracle數(shù)據(jù)庫,均可用ODBC API進(jìn)行訪問。由此可見,ODBC的最大優(yōu)點(diǎn)是能以統(tǒng)一的方式處理所有的數(shù)據(jù)庫,用它生成的程序與數(shù)據(jù)庫或數(shù)據(jù)庫引擎是無關(guān)的。ODBC可使程序員方便地編寫訪問各DBMS廠商的數(shù)據(jù)庫的應(yīng)用程序,而不需了解其產(chǎn)品的細(xì)節(jié)。

二、ODBC的結(jié)構(gòu)

一個(gè)完整的ODBC如圖1所示。

1. 應(yīng)用程序。對外提供使用者交談界面,對內(nèi)執(zhí)行資料之準(zhǔn)備工作數(shù)據(jù)庫系統(tǒng)所傳回來的結(jié)果在顯示給使用者看,它可以用支持ODBC技術(shù)的任何一門語言編寫。

2.驅(qū)動程序管理器(Driver Manager)。ODBC管理器位于Windows控制面板(Control Panel)的32位ODBC內(nèi),包含在ODBC32.DLL中,它對用戶是透明的。其任務(wù)是管理ODBC驅(qū)動程序,是ODBC中最重要的部件。提供從主機(jī)語言到特定后端數(shù)據(jù)源驅(qū)動程序的接口。

3. ODBC API。數(shù)據(jù)庫廠商為程序設(shè)計(jì)者提供的直接訪問數(shù)據(jù)庫的一組函數(shù)。

4. ODBC 驅(qū)動程序。也是一個(gè)動態(tài)鏈接庫 (DLL)。應(yīng)用程序通過調(diào)用驅(qū)動程序所支持的函數(shù)來操縱具體的數(shù)據(jù)源。

5. 數(shù)據(jù)源。作為數(shù)據(jù)源使用的數(shù)據(jù)庫或數(shù)據(jù)庫服務(wù)器。ODBC數(shù)據(jù)源通過它們的數(shù)據(jù)源名稱來引用,或者通過具體引用ODBC驅(qū)動程序和服務(wù)器名稱來引用。可以在 Windows 的控制面板中使用ODBC管理程序或rdoRegisterDataSource (一個(gè)ODBC API)方法來注冊命名的數(shù)據(jù)源。

應(yīng)用程序要訪問一個(gè)數(shù)據(jù)庫,首先必須用ODBC管理器注冊一個(gè)數(shù)據(jù)源,管理器根據(jù)數(shù)據(jù)源提供的數(shù)據(jù)庫位置、數(shù)據(jù)庫類型及ODBC驅(qū)動程序等信息,建立起ODBC與具體數(shù)據(jù)庫的聯(lián)系。這樣,只要應(yīng)用程序?qū)?shù)據(jù)源名提供給ODBC,ODBC就能建立起與相應(yīng)數(shù)據(jù)庫的連接。

Windows的控制面板中數(shù)據(jù)源管理器如圖2所示,用啟單擊“添加”按紐就可以添加不同格式的數(shù)據(jù)源,圖2中已添加了四種不同類型的數(shù)據(jù)源。

在ODBC中,ODBC API不能直接訪問數(shù)據(jù)庫,必須通過驅(qū)動程序管理器與數(shù)據(jù)庫交換信息。驅(qū)動程序管理器負(fù)責(zé)將應(yīng)用程序?qū)DBC API的調(diào)用傳遞給正確的驅(qū)動程序,而驅(qū)動程序在執(zhí)行完相應(yīng)的操作后,將結(jié)果通過驅(qū)動程序管理器返回給應(yīng)用程序。

在訪問ODBC數(shù)據(jù)源時(shí)需要ODBC驅(qū)動程序的支持。ODBC是為調(diào)用關(guān)系數(shù)據(jù)庫提供統(tǒng)一途徑的一類API。

三、ODBC的發(fā)展

1. OLE DB。隨著數(shù)據(jù)源的日益多樣化,現(xiàn)今的應(yīng)用程序很可能需要從不同的數(shù)據(jù)源取得數(shù)據(jù),加以處理,再把處理過的數(shù)據(jù)輸出到另外一個(gè)數(shù)據(jù)源中。更麻煩的是這些數(shù)據(jù)源可能不是傳統(tǒng)的關(guān)系數(shù)據(jù)庫,而可能是非關(guān)系型信息源,例如Email,文件系統(tǒng)存儲,文本、圖形和地理數(shù)據(jù)以及自定義業(yè)務(wù)對象。Microsoft為了讓應(yīng)用程序能夠以統(tǒng)一的方式存取各種不同的數(shù)據(jù)源,在1997年提出了UniversalDataAccess(UDA)架構(gòu)。UDA以COM技術(shù)為核心,協(xié)助程序員存取企業(yè)中各類不同的數(shù)據(jù)源。UDA以O(shè)LE-DB做為技術(shù)的骨架。OLE-DB定義了統(tǒng)一的COM接口做為存取各類異質(zhì)數(shù)據(jù)源的標(biāo)準(zhǔn),對各種數(shù)據(jù)庫管理系統(tǒng)服務(wù)進(jìn)行封裝,并允許創(chuàng)建軟件組件,實(shí)現(xiàn)這些服務(wù)。OLE DB 組件包括數(shù)據(jù)提供程序(包含和表現(xiàn)數(shù)據(jù))、數(shù)據(jù)使用者(使用數(shù)據(jù))和服務(wù)組件(處理和傳送數(shù)據(jù))。OLE DB 包含了一個(gè)連接 ODBC 的“橋梁”,對現(xiàn)用的各種 ODBC 關(guān)系型數(shù)據(jù)庫驅(qū)動程序提供一貫的支持。但仍然OLEDB是一個(gè)低層次的,利用效率不高。

2.ADO。ADO(ActiveX Data Object)動態(tài)數(shù)據(jù)對象。雖然OLE-DB允許程序員存取各類數(shù)據(jù),是一個(gè)非常良好的架構(gòu),但是由于OLE-DB太底層化,而且在使用上非常復(fù)雜,需要程序員擁有高超的技巧,因此只有少數(shù)的程序員才有辦法使用OLE-DB。這讓OLE-DB無法廣為流行。為了解決這個(gè)問題, Microsoft同樣以COM技術(shù)封裝OLE-DB為ADO對象,OLEDB處于ODBC層和應(yīng)用層之間。ADO是OLEDB上面的一種“應(yīng)用”。從而簡化了程序員數(shù)據(jù)存取的工作。由于 ADO成功地封裝了OLE-DB大部分的功能,并且大量簡化了數(shù)據(jù)存取工作,因此 ADO也逐漸被愈來愈多的程序員所接受。

3. JDBC

Java語言的普及使數(shù)據(jù)庫技術(shù)在JAVA語言中的應(yīng)用也迅速發(fā)展起來,JDBC(Java DataBase Connectivity)是JAVA執(zhí)行SQL語句的Java API,JDBC定義了一個(gè)支持標(biāo)準(zhǔn)SQL功能的通用低層的應(yīng)用程式編程接口(API),他由Java 語言編寫的類和接口組成,旨在讓各數(shù)據(jù)庫研發(fā)商為Java程式員提供標(biāo)準(zhǔn)的數(shù)據(jù)庫API。JDBC API定義了若干Java中的類,表示數(shù)據(jù)庫連接、SQL指令、結(jié)果集、數(shù)據(jù)庫元數(shù)據(jù)等。他允許Java程式員發(fā)送SQL指令并處理結(jié)果。通過驅(qū)動程式管理器,JDBC API可利用不同的驅(qū)動程式連接不同的數(shù)據(jù)庫系統(tǒng)。

四、結(jié)束語

在ODBC中,應(yīng)用程序不會直接存取數(shù)據(jù)庫,它必須通過管理器和數(shù)據(jù)庫交換信息。ODBC管理器負(fù)責(zé)將應(yīng)用程序的SQL語句及其他信息傳遞給驅(qū)動程序,而驅(qū)動程序則負(fù)責(zé)將運(yùn)行結(jié)果送回應(yīng)用程序,從而提供了一種不同應(yīng)用程序?qū)?shù)據(jù)庫的操作的一種規(guī)范,實(shí)現(xiàn)了程序員對具體關(guān)系型DBMS的訪問的“透明性”,而ADO技術(shù)則把這種數(shù)據(jù)類型擴(kuò)展到了非關(guān)系型數(shù)據(jù)庫,并且同現(xiàn)在主流的向?qū)ο蟮木幊趟枷胍恢拢琂DBC則是數(shù)據(jù)庫訪問技術(shù)應(yīng)用在JAVA語言中的一個(gè)典型技術(shù)。

參考文獻(xiàn):

[1](美)Kyle Geiger ODBC深入剖析[M] 電子工業(yè)出版社 1996.

[2]文必龍,邵慶開放數(shù)據(jù)庫互聯(lián)(ODBC)技術(shù)與應(yīng)用[M] 科學(xué)出版社1997,89-113

[3]David Sceppa ADO編程技術(shù)[M] 清華大學(xué)出版社2001,21-30

[4](美)泰勒 JDBC數(shù)據(jù)庫編程與J2EE[M] 電子工業(yè)出版社 2004,37-58

[5]劉紅鑠 李曉 基于JDBC數(shù)據(jù)庫查詢和發(fā)布[J] 計(jì)算機(jī)應(yīng)用研究 2000,11

主站蜘蛛池模板: 狠狠亚洲婷婷综合色香| 久久精品最新免费国产成人| 潮喷在线无码白浆| 欧美高清国产| 免费在线不卡视频| 成年人国产网站| 色噜噜中文网| 精品免费在线视频| 久久精品无码国产一区二区三区 | 久一在线视频| 亚洲成a∧人片在线观看无码| 福利在线一区| 男人的天堂久久精品激情| 九色视频一区| 国产成人精品免费视频大全五级| 亚洲视频一区| 97在线碰| 亚洲精品视频免费看| 国产成人精品免费av| 成人免费黄色小视频| 免费无码网站| 国产va在线观看免费| 国产av一码二码三码无码| 精品人妻系列无码专区久久| 久久综合伊人 六十路| 精品91视频| 高清不卡一区二区三区香蕉| 91亚洲国产视频| 91精品情国产情侣高潮对白蜜| 国产美女无遮挡免费视频网站 | 国产区福利小视频在线观看尤物| 婷婷色中文| 九色91在线视频| 国产精欧美一区二区三区| 呦女亚洲一区精品| 国产精品视频3p| 亚洲欧美国产高清va在线播放| 国产日韩欧美在线播放| 久久情精品国产品免费| 亚洲中字无码AV电影在线观看| 新SSS无码手机在线观看| 亚洲午夜天堂| 97久久精品人人做人人爽| 久久国产热| 欧美色99| 91精品在线视频观看| 免费AV在线播放观看18禁强制| 美女裸体18禁网站| 一级全免费视频播放| 国产jizzjizz视频| 国产凹凸一区在线观看视频| 免费jjzz在在线播放国产| 中文字幕调教一区二区视频| 91精品专区国产盗摄| 91免费在线看| 欲色天天综合网| 国产第一页免费浮力影院| 亚洲三级视频在线观看| 天天摸夜夜操| 亚洲人成网站日本片| 日韩精品无码免费一区二区三区| 亚洲欧美精品在线| 香蕉伊思人视频| 婷婷色在线视频| 她的性爱视频| 精品一区二区久久久久网站| 久久久久国产精品熟女影院| 午夜国产不卡在线观看视频| 欧美一区国产| 久99久热只有精品国产15| 欧美性猛交xxxx乱大交极品| 国产凹凸视频在线观看| 亚洲手机在线| 黄色网页在线播放| 国产91成人| 亚洲精品成人7777在线观看| 亚洲欧美国产高清va在线播放| 欧美h在线观看| 午夜丁香婷婷| 一级一级一片免费| 夜夜爽免费视频| 91国内外精品自在线播放|