リモート サーバー (LAN) 上の SQL Server 2008 Express インスタンスにクエリを実行する C# アプリケーションに取り組んでいます。
ワークステーション/開発マシンにいるときは、SQL Server Management Studio を開き、Windows 認証を介して SQL インスタンスに接続できます。すべての意図と目的のために、エクスペリエンスはサーバー上の SSMS で作業するのと同じです。私が知る限り、サーバー上でできることはすべて自分のワークステーションから実行できます。
同じサーバーが Access 2003 .mdb ファイルをホストし、SQL インスタンスでリンク サーバーとして設定されます。
問題のクエリは、SQL データベースと Access データベースのテーブルを結合してコンパイルされた結果セットを返します。
サーバー上でクエリを実行すると、つまり、サーバー マシンで SQL Server Management Studio を実行すると、すべてが期待どおりに機能します。ただし、開発マシンから同じクエリを実行しようとすると、SSMS で実行する場合でも、統合テストを実行したりアプリケーションをデバッグしたりする場合でも、リンク サーバーでは何もできません。SSMS で確認できますが、何かを実行しようとすると、次のようになります。
<DatabaseName
リンク サーバー ' >'の OLE DB プロバイダー 'Microsoft.Jet.OLEDB.4.0' のデータ ソース オブジェクトを初期化できません。
このエラーに関連する多くのスレッドを調べ、プロバイダー設定の多くの順列を試しましたが、すべて役に立ちませんでした。
- Access DBにはパスワードがありません(パスワードなしで名前「Admin」を使用するようにセキュリティを設定しようとしました)
- ワークステーション ユーザー アカウントには、Access DB が配置されているサーバー ディレクトリに対する完全なアクセス許可があります。
- Win XP Pro SP3 のサーバーで同じ動作が発生し、現在は Win Server 2003 で発生しています。
- Win XP Pro SP3 と同じ動作がクライアントで発生し、現在は Win 7 Pro x32 で発生しています。
リモートではなく、サーバー上でうまく機能します。
大変助かりました。