2014年10月1日水曜日

結局、Microsoft SQL Server 2014 のOLEDBプロバイダーはどうなった?

こんにちは。今回は、近藤が担当します。
今回は、一時期話題になったSQL ServerのOLE DBプロバイダー対応について、です。

2011年8月末にMicrosoftは、SQL Server ‘Denali’(SQL Server 2012の開発コード)より後に出るバージョンからOLEDBプロバイダーを廃止する、と発表しました。
この発表のあと、2012年4月にSQL Server 2012がリリースされ、2014年4月に「SQL Server 2012より後に出るバージョン」となるSQL Server 2014がリリースされました。

2014年10月現在、MSDNには[SQL Server 2012 以降の SQL Server Native Client OLE DB プロバイダーの廃止]( http://msdn.microsoft.com/ja-jp/library/hh510181(v=sql.110).aspx )というエントリーが作成されており、そこには発表があった時点のBLOGへのリンクも残されています。
(この日本語記事、タイトルからは「SQL Server 2012 以降で廃止」のように読めるのですが、実際は文中にあるとおり「SQL Server 2012 を最後に廃止」なので、ちょっとだけ注意が必要です。))



さて、このOLE DBプロバイダー、SQL Server 2014では使えなくなったのか、というと…
特別なモジュールを用意する必要は無く、SQL Server 2014のインストールメディアに含まれているドライバーを使用するだけで、OLE DBプロバイダーで接続することができます。

SQL Server 2014に付属しているクライアントモジュールは2つあります。
1つめは、「Microsoft ODBC Driver 11 for SQL Server」です。このクライアントモジュールは、SQL Server 2012まで付属していた「SQL Server Native Client」に含まれているODBCドライバーの後継で、「SQL Server Native Client」のODBCドライバーの機能を全て含んでおり、さらに新機能を追加したもの、と説明されています。クライアントモジュールの名称どおり、ODBCドライバーのみでOLE DBプロバイダーは含まれていません。

では、OLE DBプロバイダーはどこにあるかというと、ここで2つめのクライアントモジュールが登場します。それは、既に最終更新を終えている「SQL Server Native Client」です。ODBCドライバーは、先の「Microsoft ODBC Driver 11 for SQL Server」が後継のドライバーとして付属しているので、このクライアントモジュールは、OLE DBプロバイダーのために付属していると考えられます。念のために、MSDNにある[SQL Server Native Client のシステム要件]( http://msdn.microsoft.com/ja-jp/library/ms131002.aspx )を調べてみると、OLE DBプロバイダーを使用してSQL Server 2014に接続する要件が、SQL Server 2012と同じ内容で存在しています。なおこの資料では、MDACやWDACによる接続も行えるとされています。
SQL Server 2014で使用することのできる同社製ユーティリティを含め、OLE DBプロバイダーでしか接続できない機能やOLE DBプロバイダーによる接続が推奨されているものが存在するので、この「すでに廃止された」クライアントモジュールが付属しているのでしょう。

このように、SQL Server 2014はサーバ側/クライアント側共にOLE DBプロバイダーで接続できる状態になっています。ですが、SQL Server以外の製品を見回してみると、AccessプロジェクトがAccess 2013で使用できなくなったことを始め、Microsoft製品におけるOLE DBプロバイダーのサポートは終了してきています。
SQL Server 2014の時点では、製品に同梱されている旧バージョンのクライアントモジュールを使用することでOLE DBプロバイダーを利用できることがわかりましたが、そのクライアントモジュールの更新は既に終了しています。ですので、OLE DBプロバイダーによるデータベース接続は、OLE DBプロバイダーが利用できる間に移行する必要があります。

この2つのクライアントモジュールですが、SQL Server 2014のインストールメディアに同梱されている「SQL Server Native Client」は、SQL Server 2012の時代にリリースされたものと全く同じです。
「Microsoft ODBC Driver 11 for SQL Server」も、SQL Server 2012の時代にリリースされているのですが、SQL Server 2014にはそれより新しいドライバーが同梱されています。ドライバーの名称にSQL Server 2012のバージョン番号(=11)が入っているので不思議な感じがするのですが、ドライバーの内部バージョンはSQL Server 2014のサーババージョンと同じになっています。

SQL Server以外にもOLE DBプロバイダーを持つデータベースは存在します。
他社データベースにおけるOLE DBプロバイダーサポートは、いまのところ特に動きは無いようです。OLE DBプロバイダーはMicrosoftが設計したものなので、他社データベースもSQL Serverの動きに追随するのかと思ったのですが…

(文中の各リンクは、2014/10/01時点のものです)

0 件のコメント:

コメントを投稿