搜尋本站文章

2011-11-18

SQL Server 2012:廢除 OLE DB,擁抱 ODBC

Microsoft 在 2011-08-29 發佈:
Microsoft is Aligning with ODBC for Native Relational Data Access

文中說明:

ODBC 是業界存取資料庫的標準,SQL Azure 亦是支援 ODBC 方式來存取。而且與其他方式比較起來,ODBC 會是更容易使用的。

而 SQL Server 2012 (codename:Denali) 會是最後一個提供 Microsoft SQL Server OLE DB 支援的版本。

目前,是不用急著修改應用程式,因為在 SQL Server 2012 產品技術支援週期內仍是繼續可以使用(註1)。

對於在設計未來的開發規劃上,就應該改用 ODBC。



註1:
依據「Microsoft 技術支援週期準則」,OLE DB 在 SQL Server 2012 上將繼續提供技術支援 7 年(5+2)的時間。

若是由協力廠商開發的 OLE DB 則不受到影響。



依據
Microsoft SQL Server OLEDB Provider Deprecation Announcement
公告日期:2011/09/13
http://blogs.msdn.com/b/adonet/archive/2011/09/13/microsoft-sql-server-oledb-provider-deprecation-announcement.aspx

文中提到:

這樣的異動,並不會影響到 ADO 與 ADO.NET 。但如果您使用 SQL Server 時,建議使用 SQL Server Native Client 當成為 .NET Provider。

若您連線其他資料庫系統,建議使用此資料庫廠商提供的 .NET Providers 或是 Managed ODBC。

若原本使用 OLE DB 的應用程式,您也無須即刻修改,因為在 SQL Server 2012 上仍繼續提供支援,但需要列入未來移轉的規劃。

-- OLEDB Provider Deprecation Announcement





在先前的 SQL Server 版本上:

對於 SSAS 而言,原本是僅支援 OLE DB for OLAP 。
對於 SSIS 而言,在 ODBC 上有支援度與效能等問題。

如今,對於 SSAS、SSRS、SSIS 的用戶,若原本使用是 SQL Server Native Client (SNAC) OLEDB provider,需要規劃改用 ODBC。




認識 ODBC、OLE DB、SNAC

(1) ODBC:Open Database Connectivity(開放式資料庫連接)。

ODBC 是應用程式開發介面 (API) 的標準定義,用於存取關聯式資料庫或索引循序存取方法 (ISAM) 資料庫中的資料。

SQL Server 透過 SQL Server Native Client ODBC 驅動程式支援 ODBC 做為其中一個原生 API,來撰寫與 SQL Server 進行通訊的 C、C++ 與 Microsoft Visual Basic 應用程式。

SQL Server 2008 R2 Native Client (ODBC)

使用 SQL Server Native Client ODBC 驅動程式撰寫的 SQL Server 程式會透過 C 函數呼叫,與 SQL Server 進行通訊。

ODBC 函數的 SQL Server 專屬版本會在 SQL Server Native Client ODBC 驅動程式中實作。

此驅動程式會將 SQL 陳述式傳遞到 SQL Server,然後將陳述式的結果傳回到應用程式。
SQL Server Native Client 驅動程式支援連接至 SQL Server 2000 和更新版本。

SQL Server Native Client ODBC 驅動程式符合 Microsoft Win32 ODBC 3.51 規格。此驅動程式支援使用舊版 ODBC,以 ODBC 3.51 規格中定義之方式撰寫的應用程式。

(2) OLE DB:Object Linking and Embedding Database

以 COM 為基礎的應用程式開發介面 (API),用於存取資料。OLE DB 支援存取以能夠使用 OLE DB 提供者的任何格式來儲存的資料。

(3) SNAC:SQL Server Native Client。

SQL Server Native Client 是用於 OLE DB 和 ODBC 的獨立資料存取應用程式開發介面 (API) (在 SQL Server 2005 中導入)。

SQL Server Native Client 將 SQL OLE DB 提供者和 SQL ODBC 驅動程式結合為單一的原生動態連結程式庫 (DLL)。

此介面也提供遠超過 Windows Data Access Components (Windows DAC,之前稱為 Microsoft Data Access Components,或稱 MDAC) 的新功能。

SQL Server Native Client 可用於建立新的應用程式,或者加強需要利用 SQL Server 2005 所推出之新功能 (例如,Multiple Active Result Set (MARS)、使用者定義資料類型 (UDT)、查詢通知、快照集隔離和 XML 資料類型支援) 的現有應用程式。



參考資料:

Microsoft is Aligning with ODBC for Native Relational Data Access
http://blogs.msdn.com/b/sqlnativeclient/archive/2011/08/29/microsoft-is-aligning-with-odbc-for-native-relational-data-access.aspx

Difference Between SQL Server Native Client 10.0 and OLEDB For SQL Sever ?
http://social.msdn.microsoft.com/Forums/en/sqlintegrationservices/thread/19e0c306-0be4-46b5-b207-0937931d63a7

Microsoft is Aligning with ODBC for Native Relational Data Access - FAQ
http://social.msdn.microsoft.com/Forums/en-US/sqldataaccess/thread/e696d0ac-f8e2-4b19-8a08-7a357d3d780f

文件:A Quick Guide for OLE DB to ODBC Conversion
http://blogs.msdn.com/cfs-file.ashx/__key/communityserver-components-postattachments/00-10-20-20-75/A-Quick-Guide-for-OLE-DB-to-ODBC-Conversion.docx

Microsoft 技術支援週期準則常見問答集
http://support.microsoft.com/gp/lifepolicy

OLE DB Providers Tested with SQL Server
http://msdn.microsoft.com/en-us/library/ms187072(v=SQL.105).aspx

Connectivity Options for Microsoft SQL Server 2008 Integration Services
http://msdn.microsoft.com/en-us/library/dd299429(SQL.100).aspx

Data Access Technologies Road Map
http://msdn.microsoft.com/en-us/library/ms810810

用戶端 (Analysis Services - 多維度資料)
http://msdn.microsoft.com/zh-tw/library/ms174518.aspx

RIP OLE DB
http://weblogs.sqlteam.com/dang/archive/2011/09/04/rip-ole-db.aspx

Announcing Microsoft SQL Server ODBC Driver for Linux
http://blogs.msdn.com/b/sqlnativeclient/archive/2011/10/12/annoucing-microsoft-sql-server-odbc-driver-for-linux.aspx