server1 に WebTrends ODBC ソースがあり、server2 に SQL Server 2005 があります。server2 の SQL Server からこの ODBC に接続したいと考えています。これまでのところ、リンク サーバーの次の定義を使用して、同じサーバー上にある SQL Server からこの ODBC に接続できました。
EXEC sp_addlinkedserver
@server = N'WT_ODBC',
@provider=N'MSDASQL',
@datasrc=N'WT_ODBC_test'
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'WT_ODBC',
@useself=N'False',
@locallogin=N'sa',
@rmtuser=N'administrator',
@rmtpassword='########'
このリンク サーバーを次のようにクエリできます。
SELECT *
FROM OPENQUERY(WT_ODBC, 'SELECT * FROM CompleteViewV85.DownloadedFiles');
ところで、次のような 4 部構成の名前でクエリを実行することはできません。
SELECT *
FROM WT_ODBC.[Complete View V8.5].CompleteViewV85.DownloadedFiles
次のエラーが表示されます。
Invalid use of schema or catalog for OLE DB provider "MSDASQL" for linked server
"WT_ODBC". A four-part name was supplied, but the provider does not expose the
necessary interfaces to use a catalog or schema.
..そして、オプション「レベルゼロのみ」がチェックされていないことを確認しました。しかし、最初のクエリが機能するため、これはそれほど問題ではありません。
私の問題は、このODBCに接続する方法ですが、別のサーバーからですか? 私はserver2に行き、そこでSQL Serverに次のリンクサーバーを作成しました:
EXEC sp_addlinkedserver
@server = N'WT_ODBC',
@srvproduct=N'Microsoft OLE DB Provider for ODBC',
@provider=N'MSDASQL',
@datasrc=N'WT_ODBC_test',
@location=N'10.254.251.20'
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'WT_ODBC',
@useself=N'False',
@locallogin=N'sa',
@rmtuser=N'administrator',
@rmtpassword='########'
..server1 の IP アドレスを @location パラメータとして配置しました。この方法で作成されたリンク サーバーは、server1 の ODBC に接続できません。server1 で動作するのと同じクエリを実行しようとすると、次のエラーが発生します。
Cannot get the column information from OLE DB provider "MSDASQL" for linked server
"WT_ODBC".
ヘルプ?誰か?お願いします?:)
前もって感謝します。