4

サードパーティの ActiveX コントロールを使用して、Web サーバーをバイパスして、クライアントが PC からリモート SQL Server データベースに直接接続できるようにする ac# Web サイトがあります。私はもともとSQLOLEDBプロバイダーを使用していましたが、正常に動作していました。クライアントは内部ネットワーク (Windows マシンと Internet Explorer を使用) にあり、Web サイトは一般的なインターネットに公開することを意図していません。

SQL Server 2008 の新しいデータ型に対応するために、SQLOLEDB プロバイダーの使用から SQLNCLI10 プロバイダーにアップグレードする必要がありました。私の PC では機能しましたが、本番環境は機能しませんでした。SQLOLEDBプロバイダーは Windows OS (MDAC/WDAC) の一部であり、クライアントの PC に既に存在するため、それが機能していることに気づきませんでした。SQLNCLI10プロバイダーは SQL Server 2008 の一部として含まれており、クライアント マシンに個別にインストールする必要があります(ほとんどのプロバイダーには SQL Server がインストールされていませんが、私はインストールしています)。

スタンドアロンの Microsoft SQL Server 2008 Native Client プロバイダーをダウンロードするためのリンクを提供できますが、既にインストールされているかどうかを確認するにはどうすればよいですか?

4

2 に答える 2

8

Frustratingly, Microsoft does not seem to give an unambiguous answer on how to test whether the client library is present. Web searching and registry sniffing reveals at least the follow registry keys:

HLKM\SOFTWARE\Microsoft\SQLNCLI11 (key:InstalledVersion)
HLKM\SOFTWARE\Microsoft\SQLNCLI10 (key:InstalledVersion)
HKLM\SOFTWARE\Microsoft\Microsoft SQL Native Client\CurrentVersion (version 9, i presume?)
HLKM\SOFTWARE\Microsoft\Microsoft SQL Server Native Client 10.0\CurrentVersion (key:Version)
HLKM\SOFTWARE\Microsoft\Microsoft SQL Server Native Client 11.0\CurrentVersion (key:Version)

This blog post at MSDN suggests that using registry keys to answer a related question (is SQL Server Express installed) is wrong, wrong, wrong and you should write 200 lines of WMI code instead. The WMI approaches seem equally undocumented and even more fragile to me.

Since Microsoft allows the SQL Native Client package to be redistributed, perhaps the best choice is simply include the msi in your application's installer and run it whether it is needed or not. See this list of supported operating system for the various drivers they provide which reveals there is also a version 10.5(!).

SQLNCLI is installed in parallel to MDAC-based drivers, so it should be safe to run msiexec on this and let it take care of the details.

于 2012-09-14T21:19:48.700 に答える
5

単に、レジストリキーまたはファイルを確認してください

  • レジストリ:HKLM\SOFTWARE\Microsoft\Sqlncli10
  • ファイル:\System32でsqlncli10.dllを確認します

または、WMIも使用できます

HKLM\SOFTWARE\Microsoft\Microsoft SQL Server\SQLNCLI10\CurrentVersionリンクごとにバージョン10.0.1600.22などを比較できる場所でもあります

于 2011-01-07T05:57:14.410 に答える