久久国产成人av_抖音国产毛片_a片网站免费观看_A片无码播放手机在线观看,色五月在线观看,亚洲精品m在线观看,女人自慰的免费网址,悠悠在线观看精品视频,一级日本片免费的,亚洲精品久,国产精品成人久久久久久久

分享

什么是ODBC技術(shù)

 非理 2011-11-14

什么是ODBC技術(shù)

目前,,眾多的廠商推出了行行色色的數(shù)據(jù)庫系統(tǒng),它們在性能,、價(jià)格和應(yīng)用范圍上各有千秋,。一個綜合信息系統(tǒng)的各部門由于需求差異等原因,往往會存在多種數(shù)據(jù)庫,,它們之間的互連訪問成為一個棘手的問題,,特別是當(dāng)用戶需要從客戶機(jī)端訪問不同的服務(wù)器時(shí)。微軟提出的開放式數(shù)據(jù)庫互連(Open-DataBase-Connectivity,,即ODBC)成為目前一個強(qiáng)有力解決方案,,并逐步成為Windows和Macintosh平臺上的標(biāo)準(zhǔn)接口,并推動了這方面的開放性和標(biāo)準(zhǔn)化,。

一,、ODBC的產(chǎn)生和發(fā)展
關(guān)系型數(shù)據(jù)庫產(chǎn)生后很快就成為數(shù)據(jù)庫系統(tǒng)的主流產(chǎn)品,由于每個DBMS廠商都有自己的一套標(biāo)準(zhǔn),,人們很早就產(chǎn)生了標(biāo)準(zhǔn)化的想法,,于是產(chǎn)生了SQL,由于其語法規(guī)范逐漸為人所接受,,成為RDBMS上的主導(dǎo)語言,。最初,,各數(shù)據(jù)庫廠商為了解決互連的問題,往往提供嵌入式SQL API,,用戶在客戶機(jī)端要操作系統(tǒng)中的RDBMS時(shí),,往往要在程序中嵌入SQL語句進(jìn)行預(yù)編譯。由于不同廠商在數(shù)據(jù)格式,、數(shù)據(jù)操作,、具體實(shí)現(xiàn)甚至語法方面都具有不同程度的差異,所以彼此不能兼容,。
長期以來,,這種API的非規(guī)范情況令用戶和RDBMS廠商都不能滿意。在80年代后期,,一些著名的廠商包括Oracle,、Sybase、Lotus,、Ingres,、Informix、HP,、DEC等結(jié)成了SQL Access Group(簡稱SAG),,提出了SQL API的規(guī)范核心:調(diào)用級接口(Call Level Interface),簡稱CLI,。
1991年11月,,微軟宣布了ODBC,次年推出可用版本,。1992年2月,,推出了ODBC SDK 2.0版。ODBC基于SAG的SQL CAE草案所規(guī)定的語法,,共分為Core,、Level 1、 Level 2三種定義,,分別規(guī)范了22,、16、13共51條命令,,其中29條命令甚至超越了SAG CLI中原有的定義,,功能強(qiáng)大而靈活。它還包括標(biāo)準(zhǔn)的錯誤代碼集,、標(biāo)準(zhǔn)的連接和登錄DBMS方法,、標(biāo)準(zhǔn)的數(shù)據(jù)類型表示等。
由于ODBC思想上的先進(jìn)性,,且沒有同類的標(biāo)準(zhǔn)或產(chǎn)品與之競爭,,它一枝獨(dú)秀,,推出后僅僅兩三年就受到了眾多廠家與用戶的青睞,成為一種廣為接受的標(biāo)準(zhǔn),。目前,,已經(jīng)有130多家獨(dú)立廠商宣布了對ODBC的支持,常見的DBMS都提供了ODBC的驅(qū)動接口,,這些廠商包括Oracle,、Sybase、Informix,、Ingres,、IBM(DB/2)、DEC(RDB),、HP(ALLBASE/SQL),、Gupta、Borland(Paradox)等,。目前,,ODBC已經(jīng)成為客戶機(jī)/服務(wù)器系統(tǒng)中的一個重要支持技術(shù)。

二,、ODBC的基本思想與特點(diǎn)
ODBC的基本思想是為用戶提供簡單、標(biāo)準(zhǔn),、透明的數(shù)據(jù)庫連接的公共編程接口,,開發(fā)廠商根據(jù)ODBC的標(biāo)準(zhǔn)去實(shí)現(xiàn)底層的驅(qū)動程序,這個驅(qū)動對用戶是透明的,,并允許根據(jù)不同的DBMS采用不同的技術(shù)加以優(yōu)化實(shí)現(xiàn),,這就利于不斷吸收新的技術(shù)而趨完善。
這同時(shí)也就是數(shù)據(jù)庫驅(qū)動的思想,,它很類似于Windows中打印驅(qū)動的思想,。在Windows中,用戶安裝不同的打印驅(qū)動程序,,使用同樣一條打印語句或操作,,就可很容易地實(shí)現(xiàn)在不同打印機(jī)上打印輸出,而不需要了解內(nèi)部的具體原理,。ODBC出現(xiàn)以后,,用戶安裝不同的DBMS驅(qū)動就可用同樣的SQL語句實(shí)現(xiàn)在不同DBMS上進(jìn)行同樣的操作,而且無需預(yù)編譯,。ODBC帶來了數(shù)據(jù)庫連接方式的變革,,如圖1所示。在傳統(tǒng)方式中,,開發(fā)人員要熟悉多個DBMS及其API,,一旦DBMS端出現(xiàn)變動,,則往往導(dǎo)致用戶端系統(tǒng)重新編建或者源代碼的修改,這給開發(fā)和維護(hù)工作帶來了很大困難,。在ODBC方式中,,不管底層網(wǎng)絡(luò)環(huán)境如何,也無論采用何種DBMS,,用戶在程序中都使用同一套標(biāo)準(zhǔn)代碼,,無需逐個了解各DBMS及其API的特點(diǎn),源程序不因底層的變化而重新編建或修改,,從而減輕了開發(fā)維護(hù)的工作量,,縮短了開發(fā)周期。
@@12W03500.GIF;圖1 數(shù)據(jù)庫連接方式的轉(zhuǎn)變@@
概括起來,,ODBC具有以下靈活的特點(diǎn):
1. 使用戶程序有很高的互操作性,,相同的目標(biāo)代碼適用于不同的DBMS;
2. 由于ODBC的開放性,,它為程序集成提供了便利,,為客戶機(jī)/服務(wù)器結(jié)構(gòu)提供了技術(shù)支持;
3. 由于應(yīng)用與底層網(wǎng)絡(luò)環(huán)境和DBMS分開,,簡化了開發(fā)維護(hù)上的困難,。

三、ODBC的體系結(jié)構(gòu)和實(shí)現(xiàn)
ODBC是依靠分層結(jié)構(gòu)來實(shí)現(xiàn)的,,如此可保證其標(biāo)準(zhǔn)性和開放性,。圖2所示為ODBC的體系結(jié)構(gòu),它共分為四層:應(yīng)用程序,、驅(qū)動程序管理器,、驅(qū)動程序和數(shù)據(jù)源。微軟公司對ODBC規(guī)程進(jìn)行了規(guī)范,,它為應(yīng)用層的開發(fā)者和用戶提供標(biāo)準(zhǔn)的函數(shù),、語法和錯誤代碼等,微軟還提供了驅(qū)動程序管理器,,它在Windows中是一個動態(tài)鏈接庫即ODBC.DLL,。驅(qū)動程序?qū)佑晌④洝BMS廠商或第三開發(fā)商提供,,它必須符合ODBC的規(guī)程,,對于Oracle,它是ORA6WIN.DLL,,對于SQL Server,,它是SQLSRVR.DLL。
@@12W03501.GIF;圖2 ODBC體系結(jié)構(gòu)@@
下面我們詳細(xì)介紹各層的功能,。
1. 應(yīng)用程序?qū)?Application)
使用ODBC接口的應(yīng)用程序可執(zhí)行以下任務(wù):
①請求與數(shù)據(jù)源的連接和會話(SQLConnect),; ②向數(shù)據(jù)源發(fā)送SQL請求(SQLExecDirct或SQLExecute),; ③對SQL請求的結(jié)果定義存儲區(qū)和數(shù)據(jù)格式; ④請求結(jié)果,; ⑤處理錯誤,; ⑥如果需要,把結(jié)果返回給用戶,; ⑦對事務(wù)進(jìn)行控制,,請求執(zhí)行或回退操作(SQLTransact); ⑧終止對數(shù)據(jù)源的連接(SQLDisconnect),。
2. 驅(qū)動程序管理器(Driver Manager)
由微軟提供的驅(qū)動程序管理器是帶有輸入庫的動態(tài)連接庫ODBC.DLL,,其主要目的是裝入驅(qū)動程序,此外還執(zhí)行以下工作:
①處理幾個ODBC初始化調(diào)用,;
②為每一個驅(qū)動程序提供ODBC函數(shù)入口點(diǎn),;
③為ODBC調(diào)用提供參數(shù)和次序驗(yàn)證。
3. 驅(qū)動程序(Driver)
驅(qū)動程序是實(shí)現(xiàn)ODBC函數(shù)和數(shù)據(jù)源交互的DLL,,當(dāng)應(yīng)用程序調(diào)用SQL Connect或者SQLDriver Connect函數(shù)時(shí),,驅(qū)動程序管理器裝入相應(yīng)的驅(qū)動程序,它對來自應(yīng)用程序的ODBC函數(shù)調(diào)用進(jìn)行應(yīng)答,,按照其要求執(zhí)行以下任務(wù):
①建立與數(shù)據(jù)源的連接,;
②向數(shù)據(jù)源提交請求;
③在應(yīng)用程序需求時(shí),,轉(zhuǎn)換數(shù)據(jù)格式,;
④返回結(jié)果給應(yīng)用程序;
⑤將運(yùn)行錯誤格式化為標(biāo)準(zhǔn)代碼返回,;
⑥在需要時(shí)說明和處理光標(biāo)。
以上這些功能都是對應(yīng)用程序?qū)庸δ艿木唧w實(shí)現(xiàn),。驅(qū)動程序的配置方式可以劃分為以下兩種,。
(1)單層次(single-tier) 這種方式下,驅(qū)動程序要處理ODBC調(diào)用SQL語句,,并直接操縱數(shù)據(jù)庫,,因此具有數(shù)據(jù)存取功能。這種配置最常見的是同一臺微機(jī)之上異種數(shù)據(jù)庫通過ODBC存取,,如在Powerbuilder中存取XBase,、Excel、Paradox等數(shù)據(jù)文件,如圖3所示,。@@12W03502.GIF;圖3 一層配置示意圖@@
(2)多層次(multiple-tier) 這種配置中驅(qū)動程序僅僅處理ODBC調(diào)用,,而將SQL語句交給服務(wù)器執(zhí)行,然后返回結(jié)果,。這種情況往往是應(yīng)用程序,、驅(qū)動程序管理器,、驅(qū)動程序駐留在客戶機(jī)端,而數(shù)據(jù)源和數(shù)據(jù)存取功能放在服務(wù)器端,。譬如用Foxpro或Excel存取SQL Server或Oracle上的數(shù)據(jù),如圖4所示,。
@@12W03503.GIF;圖4 二層配置示意圖@@
有時(shí)在以上兩者之間加上網(wǎng)關(guān)以解決通信協(xié)議的轉(zhuǎn)換等問題,這時(shí)驅(qū)動程序要將請求先傳送給網(wǎng)關(guān),,如訪問DEC RDB和IBM AS/400時(shí)的配置,如圖5所示,。
@@12W03504.GIF;圖5 三層配置示意圖@@
4. 數(shù)據(jù)源數(shù)據(jù)源由用戶想要存取的數(shù)據(jù)和它相關(guān)的操作系統(tǒng)、DBMS及網(wǎng)絡(luò)環(huán)境組成,。

四,、一致性級別
從應(yīng)用程序觀點(diǎn)來看,最理想的情況是每個數(shù)據(jù)源和驅(qū)動程序都支持同一套ODBC函數(shù)調(diào)用和SQL語句,。但是由于形形色色的DBMS在實(shí)現(xiàn)上有很大的差異,,它們所依賴的系統(tǒng)和環(huán)境也各不相同,在對ODBC支持的程度上就不一致,。一致性級別(Conformance Levels)建立了對眾多功能的標(biāo)準(zhǔn)劃分,,為應(yīng)用程序和驅(qū)動程序提供幫助和選擇的依據(jù)。它劃定了驅(qū)動程序所支持的ODBC函數(shù)和SQL語句的范圍,,我們可以用SQLGetInfo,、SQLGetFunctions、SQLTypeInfo三個函數(shù)獲知驅(qū)動程序所支持的功能集,。

ODBC從API和SQL語法兩方面劃分級別,。

1. API的一致性

ODBC將函數(shù)調(diào)用劃分為三級。
(1)核心API 它包括了與SAG的CLI相匹配的基本功能,,包括:分配與釋放環(huán)境,、連接及語句句柄;連接到數(shù)據(jù)源,;準(zhǔn)備并執(zhí)行SQL語句或立即執(zhí)行SQL語句,;為SQL語句和結(jié)果列中的參數(shù)分配存儲器;從結(jié)果中檢索數(shù)據(jù),,檢索結(jié)果的信息,;提交和撤消事務(wù)處理;檢索錯誤信息,。
(2)一級API 它包括了核心API的全部功能,,比如用特定驅(qū)動程序的對話框連接到數(shù)據(jù)源;設(shè)置和查詢語句值和連接選項(xiàng),;送部分或全部參數(shù)值,;檢索部分和全部結(jié)果;檢索目錄信息;檢索關(guān)于驅(qū)動程序和數(shù)據(jù)源的信息,。
(3)二級API 其功能包括核心和一級API的全部功能,;瀏覽可獲得的連接和可獲得的數(shù)據(jù)源列表;發(fā)送參數(shù)值數(shù)組,,檢索結(jié)果數(shù)組,;檢索參數(shù)個數(shù)及參數(shù)描述;應(yīng)用可卷動的光標(biāo),;檢索SQL語句和本機(jī)表格,;檢索各種目錄信息;調(diào)用轉(zhuǎn)換DLL,。

2. SQL語法的一致性級別
從SQL方面可劃分為最小的SQL語法,、核心SQL語法和擴(kuò)展SQL語法三個等級。
五,、ODBC的應(yīng)用與前景
ODBC的出現(xiàn)給用戶描繪了一個誘人的前景,,即網(wǎng)絡(luò)中的Windows用戶可以方便地訪問各種數(shù)據(jù)庫。現(xiàn)在,,在微軟推出的許多產(chǎn)品中都提供了ODBC支持,,如Visal Basic 3.0、Visal C1.5,、Excel 5.0,、Word 6.0、FoxPro,、Access等,。同時(shí)其他一些應(yīng)用軟件和開發(fā)工具也提供了對ODBC的支持。因此用戶只要安裝不同的ODBC驅(qū)動程序,,就可存取相應(yīng)的數(shù)據(jù)庫產(chǎn)品,,而不管用戶使用何種前臺應(yīng)用軟件,也不管后臺是何種數(shù)據(jù)庫,,這個存取的過程是一致的,。
但是由于ODBC產(chǎn)生的時(shí)間還不長,其應(yīng)用也同時(shí)存在著一些問題,。首先,它的層次比較多,,表現(xiàn)在性能上比專有的API要慢,,這是其標(biāo)準(zhǔn)化和開發(fā)性所帶來的必要的代價(jià);其次,,由于ODBC規(guī)定了三個層次的一致性級別,,應(yīng)用程序與驅(qū)動程序之間的匹配就會出現(xiàn)一些問題和矛盾,比如某些驅(qū)動程序支持的級別比較低,而應(yīng)用程序要求的比較高,;再者,,由于不同的驅(qū)動程序?yàn)椴煌拈_發(fā)商所開發(fā),測試工作不能統(tǒng)一,,而現(xiàn)有的開發(fā)和測試工具并不很完善,;同時(shí),在非SQL的數(shù)據(jù)庫系統(tǒng)上的應(yīng)用也存在一些問題,。
微軟公司將ODBC作為一項(xiàng)很重要的技術(shù),,它已承諾進(jìn)一步改進(jìn)ODBC技術(shù),為驅(qū)動程序開發(fā)者提供更先進(jìn)的開發(fā)和測試工具,,還將交付系統(tǒng)管理和監(jiān)控工具,,它還將與DBMS廠商和第三方廠商建立更密切的合作,以期使驅(qū)動程序支持更高級別的一致性,,并在規(guī)范化方面有所完善,。目前,ODBC已為數(shù)據(jù)庫供應(yīng)商組織內(nèi)部所認(rèn)可,,同時(shí)為眾多應(yīng)用軟件廠商和第三方開發(fā)商所使用,,相信隨著SQL的推廣和規(guī)范,用戶和開發(fā)商會更加依賴于這一技術(shù).

    本站是提供個人知識管理的網(wǎng)絡(luò)存儲空間,,所有內(nèi)容均由用戶發(fā)布,,不代表本站觀點(diǎn)。請注意甄別內(nèi)容中的聯(lián)系方式,、誘導(dǎo)購買等信息,,謹(jǐn)防詐騙。如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,,請點(diǎn)擊一鍵舉報(bào),。
    轉(zhuǎn)藏 分享 獻(xiàn)花(0

    0條評論

    發(fā)表

    請遵守用戶 評論公約

    類似文章 更多