2 回答

TA貢獻(xiàn)1848條經(jīng)驗(yàn) 獲得超10個(gè)贊
ODBC是一種連接數(shù)據(jù)庫的開放標(biāo)準(zhǔn)。
ODBC(Open
DataBase
Connectivity,開放數(shù)據(jù)庫互連)是微軟公司開放服務(wù)結(jié)構(gòu)(WOSA,Windows
Open
Services
Architecture)中有關(guān)數(shù)據(jù)庫的一個(gè)組成部分,它建立了一組規(guī)范,并提供了一組對(duì)數(shù)據(jù)庫訪問的標(biāo)準(zhǔn)API(應(yīng)用程序編程接口)。這些API利用SQL來完成其大部分任務(wù)。ODBC本身也提供了對(duì)SQL語言的支持,用戶可以直接將SQL語句送給ODBC。
它本身就是為了是數(shù)據(jù)庫的使用者不必考慮使用的是何種數(shù)據(jù)庫而只需要相同的操作而設(shè)計(jì)的。
ODBC是Open
Database
Connect即開放數(shù)據(jù)庫互連的簡稱,它是由Microsoft
公司于1991
年提出的一個(gè)用于訪問數(shù)據(jù)庫的統(tǒng)一界面標(biāo)準(zhǔn),是應(yīng)用程序和數(shù)據(jù)庫系統(tǒng)之間的中間件。它通過使用相應(yīng)應(yīng)用平臺(tái)上和所需數(shù)據(jù)庫對(duì)應(yīng)的驅(qū)動(dòng)程序與應(yīng)用程序的交互來實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的操作,避免了在應(yīng)用程序中直接調(diào)用與數(shù)據(jù)庫相關(guān)的操作,從而提供了數(shù)據(jù)庫的獨(dú)立性。
ODBC
主要由驅(qū)動(dòng)程序和驅(qū)動(dòng)程序管理器組成。驅(qū)動(dòng)程序是一個(gè)用以支持ODBC
函數(shù)調(diào)用的模塊,每個(gè)驅(qū)動(dòng)程序?qū)?yīng)于相應(yīng)的數(shù)據(jù)庫,當(dāng)應(yīng)用程序從基于一個(gè)數(shù)據(jù)庫系統(tǒng)移植到另一個(gè)時(shí),只需更改應(yīng)用程序中由ODBC
管理程序設(shè)定的與相應(yīng)數(shù)據(jù)庫系統(tǒng)對(duì)應(yīng)的別名即可。驅(qū)動(dòng)程序管理器可鏈接到所有ODBC
應(yīng)用程序中,它負(fù)責(zé)管理應(yīng)用程序中ODBC
函數(shù)與DLL
中函數(shù)的綁定。
ODBC
使用層次的方法來管理數(shù)據(jù)庫,在數(shù)據(jù)庫通信結(jié)構(gòu)的每一層,對(duì)可能出現(xiàn)依賴數(shù)據(jù)庫產(chǎn)品自身特性的地方,ODBC
都引入一個(gè)公共接口以解決潛在的不一致性,從而很好地解決了基于數(shù)據(jù)庫系統(tǒng)應(yīng)用程序的相對(duì)獨(dú)立性,這也是ODBC
一經(jīng)推出就獲得巨大成功的重要原因之一。
從結(jié)構(gòu)上分,ODBC
分為單束式和多束式兩類。
1.單束式驅(qū)動(dòng)程序
單束式驅(qū)動(dòng)程序介于應(yīng)用程序和數(shù)據(jù)庫之間,像中介驅(qū)動(dòng)程序一樣數(shù)據(jù)提供一個(gè)統(tǒng)一的數(shù)據(jù)訪問方式。當(dāng)用戶進(jìn)行數(shù)據(jù)庫操作時(shí),應(yīng)用程序傳遞一個(gè)ODBC
函數(shù)調(diào)用給ODBC
驅(qū)動(dòng)程序管理器,由ODBC
API
判斷該調(diào)用是由它直接處理并將結(jié)果返回還是送交驅(qū)動(dòng)程序執(zhí)行并將結(jié)果返回。由上可見,單束式驅(qū)動(dòng)程序本身是一個(gè)數(shù)據(jù)庫引擎,由它直接可完成對(duì)數(shù)據(jù)庫的操作,盡管該數(shù)據(jù)庫可能位于網(wǎng)絡(luò)的任何地方。
2.多束式驅(qū)動(dòng)程序
多束式驅(qū)動(dòng)程序負(fù)責(zé)在數(shù)據(jù)庫引擎和客戶應(yīng)用程序之間傳送命令和數(shù)據(jù),它本身并不執(zhí)行數(shù)據(jù)處理操作而用于遠(yuǎn)程操作的網(wǎng)絡(luò)通信協(xié)議的一個(gè)界面。前端應(yīng)用程序提出對(duì)數(shù)據(jù)庫處理的請求,該請求轉(zhuǎn)給ODBC
驅(qū)動(dòng)程序管理器,驅(qū)動(dòng)程序管理器依據(jù)請求的情況,就地完成或傳給多束驅(qū)動(dòng)程序,多束式驅(qū)動(dòng)程序?qū)⒄埱蠓g為特定廠家的數(shù)據(jù)庫通信接口(如Oracle
的SQLNet)所能理解的形式并交于接口去處理,接口把請求經(jīng)網(wǎng)絡(luò)傳送給服務(wù)器上的數(shù)據(jù)引擎,服務(wù)器處理完后把結(jié)果發(fā)回給數(shù)據(jù)庫通信接口,數(shù)據(jù)庫接口將結(jié)果傳給多束式ODBC
驅(qū)動(dòng)程序,再由驅(qū)動(dòng)程序?qū)⒔Y(jié)果傳給應(yīng)用程序。
- 2 回答
- 0 關(guān)注
- 835 瀏覽
添加回答
舉報(bào)