OLE DB Driver for SQL Server(MSOLEDBSQL)を利用しようと思ったが、Microsoft OLE DB Driver 19 for SQL Serverでうまくいかなかったので、バージョンを18にしたらうまくいった。
背景
Microsoftより、OLE DBに、Microsoft OLE DB Driver for SQL Server(MSOLEDBSQL)を使うように推奨されているのだが、未だにSQLOLEDBやSQLNCLIをつかった例が大半を占めており、これからはMSOLEDBSQLだけ利用するようにしようとして、インストールして使ってみた。
事実
- Microsoft OLE DB Provider for SQL Server (SQLOLEDB) は非推奨のままであり、新しい開発作業に使用することはできません。 代わりに、新しい Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL) を使用します。これは、最新のサーバー機能で更新されます。
Microsoft OLE DB Provider for SQL Server | Microsoft Learn
- 新SQL Server Native Client (SQLNCLI) は非推奨のままであり、新しい開発作業に使用することはできません。 代わりに、新しい Microsoft OLE DB Driver for SQL Server (MSOLEDBSQL) を使用します。これは、最新のサーバー機能で更新されます。
詳細 - SQL Server Native Client | Microsoft Learn
以前の Microsoft OLE DB Provider for SQL Server (SQLOLEDB) と SQL Server Native Client OLE DB プロバイダー (SQLNCLI) は非推奨のままであり、新しい開発作業にはどちらの使用もお勧めできません。
新しい Microsoft OLE DB Driver for SQL Server を既存のアプリケーションで使用するには、使用している接続文字列を SQLOLEDB または SQLNCLI から MSOLEDBSQL に変換することを計画する必要があります。
Microsoft OLE DB Driver for SQL Server - OLE DB Driver for SQL Server | Microsoft Learn
- OLE DB Driver for SQL Server は、以前のバージョンの Microsoft OLE DB プロバイダーとサイドバイサイドでインストールできます。
OLE DB Driver for SQL Server のインストール - OLE DB Driver for SQL Server | Microsoft Learn
- MSOLEDBSQLを使うには、別途インストールが必要。
試したことと確認
現在最新のMSOLEDBSQL version19をインストールして使ってみる
接続文字列は以下
"Provider=MSOLEDBSQL19;Server={サーバのアドレス};Database={データベース名};Trusted_Connection=yes;Encrypt=Optional;"
⇛NG
非推奨ではあるが、SQLOLEDBを使ってみる
"Provider=SQLOLEDB;Data Source={サーバのアドレス};Initial Catalog={データベース名};Integrated Security=SSPI;"
⇛OK
version 19では、セキュリティが強化されているので、version 18をインストールしてみる(併存可能)
"Provider=MSOLEDBSQL;Server={サーバのアドレス};Database={データベース名};Trusted_Connection=yes;"
⇛OK
まとめ
サーバのセキュリティ対応が必要かもしれないので、version 18を使って解決とした(サーバ側は試せないので)
MSOLEDBSQL のメジャー バージョン間の違い - OLE DB Driver for SQL Server | Microsoft Learn