【问题标题】:Linked server to Intersystems Cache database from MS SQL Server 2005 Browse Catalog从 MS SQL Server 2005 链接服务器到 Intersystems Cache 数据库 浏览目录
【发布时间】:2011-07-01 21:44:34
【问题描述】:

我正在尝试在 MS SQL Server 2005 中创建一个链接服务器,通过 ODBC 指向一个系统间缓存数据库。

以下是创建链接服务器的查询:

/****** Object:  LinkedServer [CC7]    Script Date: 02/22/2011 09:06:39 ******/
EXEC master.dbo.sp_addlinkedserver @server = N'CC7', @srvproduct=N'MSDASQL', @provider=N'MSDASQL', @datasrc=N'CC7', @provstr=N'DRIVER={Intersystems ODBC};Server=CCMSSRVR;Port=1972;Database=CCMS_STAT', @catalog=N'CCMS_STAT'
 /* For security reasons the linked server remote logins password is changed with ######## */
EXEC master.dbo.sp_addlinkedsrvlogin @rmtsrvname=N'CC7',@useself=N'False',@locallogin=NULL,@rmtuser=NULL,@rmtpassword=NULL

GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'collation compatible', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'data access', @optvalue=N'true'
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'dist', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'pub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'rpc', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'rpc out', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'sub', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'connect timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'collation name', @optvalue=null
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'lazy schema validation', @optvalue=N'false'
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'query timeout', @optvalue=N'0'
GO
EXEC master.dbo.sp_serveroption @server=N'CC7', @optname=N'use remote collation', @optvalue=N'true'

我可以查询数据库,例如:

SELECT * FROM CC7..dbo.iAgentByApplicationStat

这很好用。

我遇到的问题是当我尝试通过 Microsoft SQL Server Management Studio 浏览目录时。每当我在链接服务器下展开“目录”时,都会出现以下错误:

TITLE: Microsoft SQL Server Management Studio
------------------------------

Failed to retrieve data for this request. (Microsoft.SqlServer.SmoEnum)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&LinkId=20476

------------------------------
ADDITIONAL INFORMATION:

An exception occurred while executing a Transact-SQL statement or batch. (Microsoft.SqlServer.ConnectionInfo)

------------------------------

The OLE DB provider "SQL Server" for linked server "(null)" reported an error. One or more arguments were reported invalid by the provider.
Cannot obtain the schema rowset "DBSCHEMA_CATALOGS" for OLE DB provider "SQL Server" for linked server "(null)". The provider supports the interface, but returns a failure code when it is used. (Microsoft SQL Server, Error: 7399)

For help, click: http://go.microsoft.com/fwlink?ProdName=Microsoft+SQL+Server&ProdVer=09.00.3042&EvtSrc=MSSQLServer&EvtID=7399&LinkId=20476

------------------------------
BUTTONS:

OK
------------------------------

我已经在谷歌上搜索了好几天,但无济于事,因此非常感谢任何帮助,无论多么小。

【问题讨论】:

  • 此问题适用于将初始缓存链接发布到 sql server 问题的人。你能解释一下你在 sql server 中是如何以及在哪里做这个链接的吗?我正在尝试做类似的事情,以便从 sql server 连接到缓存数据库,但我不知道我在 sql server 中的哪个位置执行此操作。有关如何完成此操作的任何细节都会有很大帮助。谢谢
  • 我使用 SQL Server Management Studio。我知道有两种方法可以创建链接服务器。一种是使用查询(例如在我原来的问题中),另一种是使用用户界面。无论哪种情况,要使其正常工作,您必须首先安装 ODBC 驱动程序 (Intersystems ODBC)。要使用用户界面创建链接服务器连接到它,然后展开“服务器对象”,然后右键单击“链接服务器”,然后选择“新建链接服务器”。
  • 我遇到了同样的问题,我无法浏览目录。虽然我无法让目录在屏幕上填充。通过执行以下操作,我无需登录到缓存并查看类定义即可获取列定义:SELECT * INTO tempdb.dbo.iAgentByApplicationStat FROM CC7..dbo.iAgentByApplicationStat where 1=0;然后我可以在 tempdb 中展开 iAgentByApplicationStat 以查看架构定义。

标签: sql linked-server intersystems-cache intersystems


【解决方案1】:
set ODBC UserDSN by manul to replace "@provstr=N'DRIVER={InterSystems ODBC};Server=CC7;Port=1972;Database=CCMS_STAT', "

那你再试一次,

select data from CCM7 will be succeed.

我正在为 SSRS 的 CCM7 报告做,如果你也这样做,请告诉我。 我的MSN:zxh-snda@hotmail.com :)

【讨论】:

  • 太棒了,这正是我需要知道的(我编写了我创建的服务器脚本,然后删除了上面引用的部分并重新创建)。我也打算用SSRS(加到MSN)
猜你喜欢
  • 2010-11-21
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-08-08
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多