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

主站蜘蛛池模板: 99热最新网址| 成人年鲁鲁在线观看视频| 国内精品伊人久久久久7777人| 亚洲有无码中文网| 激情六月丁香婷婷| 亚洲欧美一区在线| 亚洲人精品亚洲人成在线| 人妻中文字幕无码久久一区| av在线5g无码天天| 免费在线一区| 精品一区二区三区视频免费观看| 国产精品无码AV片在线观看播放| 欧美一区二区精品久久久| 免费国产高清视频| 欧美日韩精品在线播放| 日本人妻丰满熟妇区| 亚洲精品无码专区在线观看| 亚洲香蕉伊综合在人在线| 国产久操视频| 一级毛片免费不卡在线视频| 国产美女视频黄a视频全免费网站| 一区二区三区成人| 欧美色香蕉| 日韩欧美国产三级| 亚洲视频二| 久久超级碰| 欧美人在线一区二区三区| 欧美成人日韩| 欧美日本在线一区二区三区 | 一级片一区| 亚洲人成影院午夜网站| 久久久久国产一区二区| 亚洲一区二区三区国产精华液| 亚洲男人天堂久久| 亚洲无码四虎黄色网站| 婷婷色丁香综合激情| 香蕉久久国产超碰青草| 欧美第一页在线| 美女无遮挡拍拍拍免费视频| 97久久人人超碰国产精品 | 99久久精品国产麻豆婷婷| 亚洲色图欧美在线| 国产精品hd在线播放| 国产精品护士| 国产尹人香蕉综合在线电影| 欧美精品v| 亚洲成肉网| 天堂成人在线| 国产精品自在在线午夜区app| 欧美va亚洲va香蕉在线| 国产在线自在拍91精品黑人| 欧美一区二区三区香蕉视| a国产精品| 啪啪国产视频| 黄色网页在线播放| 欧美一区二区福利视频| 日韩欧美高清视频| 中文字幕永久视频| 五月综合色婷婷| 国产成人乱码一区二区三区在线| 国产无吗一区二区三区在线欢| 亚洲毛片在线看| 日本在线免费网站| 亚洲第一区欧美国产综合| 无码精品国产dvd在线观看9久| 40岁成熟女人牲交片免费| 亚洲一本大道在线| 国产毛片片精品天天看视频| 久久久精品无码一区二区三区| 久久精品中文字幕少妇| 国产亚洲视频免费播放| 久久99国产综合精品1| 国产精品手机视频一区二区| 欧美成人午夜在线全部免费| 国产一级裸网站| 色综合婷婷| 综合色在线| 国产精品久久久久久久伊一| 欧洲日本亚洲中文字幕| 亚洲精品无码成人片在线观看| 丝袜久久剧情精品国产| 国产精品太粉嫩高中在线观看|