ODBC
外觀
此條目可參照英語維基百科相應條目來擴充。 (2022年8月3日) |
ODBC(Open Database Connectivity,開放資料庫互連)提供了一種標準的API(應用程式編程介面)方法來訪問資料庫管理系統(DBMS)。這些API利用SQL來完成其大部分任務。ODBC本身也提供了對SQL語言的支援,用戶可以直接將SQL陳述式送給ODBC。ODBC的設計者們努力使它具有最大的獨立性和開放性。
歷史
[編輯]在ODBC誕生之前,如果要開發資料庫應用程式,則必須要使用資料庫廠商隨資料庫產品一同發佈的一些工具集來訪問資料庫,或者在程式中使用嵌入式SQL來訪問資料庫。當時,對於訪問資料庫的方法,缺乏一個基於C語言的統一編程介面。在這種背景下,微軟於1992年發表了ODBC。之後,X/Open組織以及ISO標準化組織基於ODBC 3.0的規範,進一步進行了標準化,於1995年發表了SQL/CLI標準。該標準已經成為了SQL標準的一部分。
版本歷史:
- ODBC 1.0:發表於1992年9月
- ODBC 2.0:發表於1994年
- ODBC 3.0:發表於1995年
- ODBC 3.5:發表於1997年
- ODBC 3.8:發表於2009年,和Windows 7一同發表[1]
- ODBC 4.0:開發於2016年6月[2] ,於2017年9月發佈的SQL Server 2017和2018年底的其他桌面驅動程式首次實現[3]在Github的最終規範 (頁面存檔備份,存於互聯網檔案館)。
實現
[編輯]ODBC的運用形態通常是由應用程式經過一個稱之為ODBC管理器的工具,建立一個DSN,指明需要呼叫的ODBC驅動程式,從而訪問對應的資料庫。對於用戶的應用程式而言,ODBC驅動程式是相對不可見的。用戶只需要在ODBC管理器中組態相應的資料庫的數據源資訊,並登入相應的ODBC驅動程式即可。DSN分為三種:
- 用戶DSN
- 系統DSN
- 檔案DSN
也可以用連接字串而不需要事先建立DSN,例如
connstr="DRIVER={SQL SERVER};SERVER=servername;UID=xyz;PWD=xxx" connstr="DRIVER={Microsoft Access Driver};SERVER=D:\abc\defg.mdb"
各個資料庫廠商通常都為自己的資料庫實現了ODBC驅動程式。從Oracle、DB2、SQL Server到Access資料庫,都實現了面向各自資料庫產品的數據驅動程式。
而對於ODBC管理器,目前主要存在以下幾種實現:
- Microsoft ODBC
- 微軟提供的一個實現,目前在大部分Windows作業系統上可以找到它。
- unixODBC
- unixODBC專案為非Windows作業系統(如各版本的Linux、Unix以及Mac OS)提供的一個實現。unixODBC的實現涵蓋了ODBC 3.0中的所有API規範,並且提供了一個類似於Microsoft ODBC那樣的GUI形式的組態介面供用戶進行數據源的組態。unixODBC的代碼在GPL協定下公開,目前該專案是由Easysoft的Nick Gorham進行管理。unixODBC現在已經是很多Linux發行版的標準安裝模式下的一個必要組件。
- iODBC
- iODBC專案(Independent Open DataBase Connectivity)的目標是提供一個平台無關的實現,該專案目前由Openlink Software進行管理。其代碼是在LGPL協定以及BSD協定下發佈。蘋果公司從Mac OS X v10.2時代開始,便將iODBC繫結至Mac OS作業系統中。
參考文獻
[編輯]- ^ What's New in ODBC 3.8. Microsoft. [2010-01-13]. (原始內容存檔於2010-01-11).
Windows 7 includes an updated version of ODBC, ODBC 3.8.
- ^ Rukmangathan, Krishnakumar. A new release of ODBC for Modern Data Stores. Microsoft Data Access / SQL BI Technologies Blog. Microsoft. 2016-06-07 [2022-05-10]. (原始內容存檔於2019-01-15).
After more than 15 years since the last release, Microsoft is looking at updating the Open Data Base Connectivity (ODBC) specification.
- ^ History of the Desktop Database Drivers - Open Database Connectivity (ODBC). [2022-05-10]. (原始內容存檔於2022-05-10).