国产成人精品无码青草_亚洲国产美女精品久久久久∴_欧美人与鲁交大毛片免费_国产果冻豆传媒麻婆精东

18143453325 在線咨詢 在線咨詢
18143453325 在線咨詢
所在位置: 首頁 > 營(yíng)銷資訊 > 信息時(shí)代 > 開放式數(shù)據(jù)庫互連(數(shù)據(jù)庫)

開放式數(shù)據(jù)庫互連(數(shù)據(jù)庫)

時(shí)間:2022-12-30 22:30:02 | 來源:信息時(shí)代

時(shí)間:2022-12-30 22:30:02 來源:信息時(shí)代

    開放式數(shù)據(jù)庫互連 : 微軟開放服務(wù)體系中有關(guān)數(shù)據(jù)庫訪問的一個(gè)組成部分,它建立了一組訪問數(shù)據(jù)庫的應(yīng)用編程接口(API)規(guī)范。事實(shí)上,ODBC是調(diào)用級(jí)接口(CLI)標(biāo)準(zhǔn)的一個(gè)實(shí)現(xiàn),也是一個(gè)行業(yè)接口標(biāo)準(zhǔn),它為基于C/C++、C#、BASIC等語言的應(yīng)用程序提供了一種訪問各種數(shù)據(jù)源的統(tǒng)一的函數(shù)調(diào)用級(jí)接口。
ODBC不僅在Windows平臺(tái)得到應(yīng)用,也擴(kuò)展到其他平臺(tái),如Unix。在Windows平臺(tái)上,ODBC API的實(shí)現(xiàn)體現(xiàn)為動(dòng)態(tài)鏈接庫的導(dǎo)出函數(shù),而Unix類平臺(tái)上則是可動(dòng)態(tài)加載的共享目標(biāo)文件的導(dǎo)出對(duì)象。這些函數(shù)庫或文件統(tǒng)稱為ODBC驅(qū)動(dòng)程序。
ODBC從3.0版趨于穩(wěn)定,后續(xù)版本又增加了對(duì)多字節(jié)編碼、UNICODE、64位編程等技術(shù)的支持,最新版本為3.52版。3.x系列修改不大,主要原因之一是微軟公司集中發(fā)展OLE DB、.NET數(shù)據(jù)提供者(data provider)等面向?qū)ο蟮臄?shù)據(jù)訪問技術(shù)。
1.ODBC的基本結(jié)構(gòu)
ODBC借助標(biāo)準(zhǔn)接口實(shí)現(xiàn)應(yīng)用對(duì)數(shù)據(jù)庫訪問的獨(dú)立性。驅(qū)動(dòng)程序和具體數(shù)據(jù)庫管理系統(tǒng)有關(guān),但基于ODBC的應(yīng)用程序?qū)?shù)據(jù)庫的操作獨(dú)立于任何DBMS,也不直接與DBMS交互,數(shù)據(jù)庫操作都通過各個(gè)ODBC函數(shù)完成。一個(gè)完整的ODBC應(yīng)用體系包含應(yīng)用程序、驅(qū)動(dòng)程序管理器、驅(qū)動(dòng)程序和數(shù)據(jù)源四個(gè)部件(見圖1)。


圖1 基于ODBC訪問數(shù)據(jù)庫


(1)應(yīng)用程序(application): 定義系統(tǒng)的應(yīng)用邏輯,管理交互操作,調(diào)用ODBC函數(shù)向數(shù)據(jù)庫服務(wù)器提交數(shù)據(jù)訪問請(qǐng)求,獲取結(jié)果并進(jìn)行后續(xù)處理。
(2)驅(qū)動(dòng)程序管理器(driver manager):為應(yīng)用程序加載和調(diào)用ODBC驅(qū)動(dòng)程序,負(fù)責(zé)應(yīng)用程序和驅(qū)動(dòng)程序的交互控制。應(yīng)用程序執(zhí)行ODBC函數(shù)時(shí),驅(qū)動(dòng)程序管理器根據(jù)應(yīng)用程序指定的數(shù)據(jù)源找到相應(yīng)的驅(qū)動(dòng)程序并進(jìn)行接口函數(shù)綁定。驅(qū)動(dòng)程序管理器也執(zhí)行部分錯(cuò)誤檢查,比如檢查函數(shù)調(diào)用格式、空指針等,這些預(yù)檢查使得調(diào)用ODBC函數(shù)時(shí),驅(qū)動(dòng)程序能夠減少檢查工作,降低提供商的工作量。
(3)ODBC驅(qū)動(dòng)程序(ODBC driver): 驅(qū)動(dòng)程序是一個(gè)和數(shù)據(jù)源相關(guān)的ODBC函數(shù)包,應(yīng)用程序最終通過驅(qū)動(dòng)程序中的函數(shù)操縱指定的數(shù)據(jù)源。如果操縱不同的數(shù)據(jù)源則可能要加載不同的驅(qū)動(dòng)程序。
ODBC驅(qū)動(dòng)程序主要分單束和多束。單束一般指數(shù)據(jù)源和應(yīng)用程序在同一主機(jī),驅(qū)動(dòng)程序直接訪問和管理數(shù)據(jù)文件,這時(shí)的驅(qū)動(dòng)程序相當(dāng)于數(shù)據(jù)管理器,如面向文本文件、excel文件的驅(qū)動(dòng)程序等。多束驅(qū)動(dòng)程序支持客戶機(jī)/服務(wù)器、客戶機(jī)/應(yīng)用服務(wù)器/數(shù)據(jù)庫服務(wù)器等多層軟件架構(gòu)的數(shù)據(jù)訪問,通常由驅(qū)動(dòng)程序完成數(shù)據(jù)庫訪問請(qǐng)求的提交和結(jié)果集接收,應(yīng)用程序使用驅(qū)動(dòng)程序中的結(jié)果集管理接口操縱結(jié)果數(shù)據(jù)。
(4)數(shù)據(jù)源(data source): 數(shù)據(jù)源是用戶在應(yīng)用中可存取的數(shù)據(jù)和相關(guān)元數(shù)據(jù)信息所構(gòu)成的一個(gè)實(shí)體。一個(gè)有效的數(shù)據(jù)源需要保存與數(shù)據(jù)建立連接的信息,可能包括操作系統(tǒng)信息、DBMS的位置、網(wǎng)絡(luò)配置、文件類型和路徑、用戶賬戶和口令等信息,數(shù)據(jù)源需要維護(hù)的信息由ODBC驅(qū)動(dòng)程序提供商規(guī)定。數(shù)據(jù)源通過應(yīng)用所在主機(jī)上的ODBC管理器來建立、管理和撤銷,例如Windows和Unix系統(tǒng)分別用ODBC數(shù)據(jù)源管理器和ODBC Config工具來建立和配置有效的ODBC數(shù)據(jù)源。
根據(jù)能夠支持的ODBC接口和標(biāo)準(zhǔn)SQL語句,ODBC驅(qū)動(dòng)程序有兩個(gè)主要的符合性分類,即: 接口符合性和SQL語法符合性。接口符合性區(qū)分驅(qū)動(dòng)程序?qū)DBC規(guī)范標(biāo)準(zhǔn)接口的支持能力,分為核心級(jí)、擴(kuò)展1級(jí)和擴(kuò)展2級(jí)。核心級(jí)是任何ODBC驅(qū)動(dòng)程序都必須支持的接口。絕大多數(shù)交互應(yīng)用都需要使用核心級(jí)的API,X/Open的調(diào)用級(jí)接口規(guī)范也規(guī)定必須支持這類接口。SQL語法符合性則劃分對(duì)SQL標(biāo)準(zhǔn)的符合性程度,分為最小SQL語法、核心SQL語法和擴(kuò)展SQL語法。所有的ODBC驅(qū)動(dòng)程序必須支持最小SQL語法級(jí)別的要求。
2.基本工作流程
應(yīng)用程序通過ODBC和數(shù)據(jù)源進(jìn)行數(shù)據(jù)交互的一般流程是:
(1)分配句柄:句柄是對(duì)某些控制資源的封裝。接口函數(shù)SQLAllocHandle可以分配環(huán)境句柄、連接句柄,也可分別用SQLAllocEnv和SQLAllocConnect申請(qǐng)。
(2)連接數(shù)據(jù)源: 通過連接句柄建立到指定數(shù)據(jù)源的連接。ODBC有三種建立連接的方式,即SQLConnect、SQLDriverConnect 和 SQLBrowse Connect。
(3)分配語句句柄: 語句句柄用于控制應(yīng)用程序和數(shù)據(jù)源間的數(shù)據(jù)交互。應(yīng)用程序提交語句執(zhí)行請(qǐng)求前用SQLAllocHandle或SQLAllocStmt分配語句句柄。
(4)執(zhí)行SQL語句:執(zhí)行SQL語句可采用立即執(zhí)行或準(zhǔn)備執(zhí)行方式。立即執(zhí)行使用SQLExecute Direct將SQL語句提交給數(shù)據(jù)源立即處理。準(zhǔn)備執(zhí)行則包括準(zhǔn)備執(zhí)行計(jì)劃(SQLPrepare)和完成執(zhí)行(SQLExecute)。當(dāng)語句有位置參數(shù)時(shí),執(zhí)行前要用SQLBindParameter進(jìn)行參數(shù)綁定。
(5)處理執(zhí)行結(jié)果: ODBC接口函數(shù)執(zhí)行后,都有返回結(jié)果,應(yīng)用程序需要檢查返回代碼。如果失敗,可以通過SQLGetDiagRec獲得更詳細(xì)的信息。如果有結(jié)果集則通過SQLGetData、SQLFetch等多個(gè)游標(biāo)訪問函數(shù)獲取結(jié)果數(shù)據(jù)。
(6)釋放語句句柄: 所有SQL語句執(zhí)行完,退出應(yīng)用前執(zhí)行SQLFreeStmt釋放連接上分配的所有語句句柄。
(7)關(guān)閉數(shù)據(jù)庫連接: 結(jié)束數(shù)據(jù)源訪問后,釋放ODBC連接從而釋放應(yīng)用在本地和數(shù)據(jù)庫服務(wù)器上占用的資源。接口函數(shù)SQLDisconnect可以關(guān)閉指定的連接。
(8)釋放連接和環(huán)境句柄: 和分配句柄的過程相反,執(zhí)行SQLFreeHandle函數(shù)釋放指定的連接和環(huán)境句柄。釋放句柄的過程和分配句柄的過程恰好相反,先分配的后釋放。SQLFreeConnect和SQLFreeEnv也可以分別釋放連接和環(huán)境句柄。
3.ODBC的作用
ODBC具有雙重約束力: 一方面,規(guī)范應(yīng)用開發(fā)。應(yīng)用開發(fā)者基于ODBC訪問數(shù)據(jù)庫時(shí),要符合ODBC的規(guī)定,不能對(duì)DBMS的應(yīng)用編程接口隨意提出要求。另一方面,規(guī)范DBMS應(yīng)用接口。DBMS開發(fā)商如果支持ODBC,它提供的API就不能像內(nèi)置函數(shù)庫那樣隨意定制,比如接口參數(shù)、返回值、消息報(bào)告等規(guī)格。因?yàn)閮?nèi)置函數(shù)庫完全由廠商自己定義,會(huì)導(dǎo)致應(yīng)用開發(fā)在一定程度上必須遷就DBMS系統(tǒng)的實(shí)現(xiàn),但是如果按照ODBC的要求,DBMS廠商設(shè)計(jì)API時(shí)就必須提供標(biāo)準(zhǔn)的接口規(guī)格,應(yīng)用程序不再過分受制。
ODBC使得開發(fā)者能夠設(shè)計(jì)、開發(fā)獨(dú)立于DBMS的應(yīng)用。應(yīng)用程序可以利用SQL來完成大部分?jǐn)?shù)據(jù)庫訪問任務(wù),有助于實(shí)現(xiàn)應(yīng)用和數(shù)據(jù)庫的分離,提高應(yīng)用系統(tǒng)的數(shù)據(jù)訪問透明性、可移植性和開發(fā)生產(chǎn)率。

關(guān)鍵詞:數(shù)據(jù)

74
73
25
news

版權(quán)所有? 億企邦 1997-2022 保留一切法律許可權(quán)利。

為了最佳展示效果,本站不支持IE9及以下版本的瀏覽器,建議您使用谷歌Chrome瀏覽器。 點(diǎn)擊下載Chrome瀏覽器
關(guān)閉