Связанный сервер с базой данных Intersystems Cache из MS SQL Server 2005 Просмотреть каталог

Я пытаюсь создать связанный сервер в 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
------------------------------

Я искал это в течение нескольких дней безрезультатно, поэтому любая помощь, независимо от того, насколько она мала, очень ценится.


person George Duckett    schedule 22.02.2011    source источник
comment
Этот вопрос предназначен для человека, опубликовавшего исходную ссылку Cache на вопрос о сервере sql. Можете ли вы объяснить, как и где вы сделали эту ссылку на сервере sql. Я пытаюсь сделать то же самое, чтобы подключиться с сервера sql к базе данных кеша, но я не знаю, где на сервере sql я это делаю. Любые подробности о том, как это делается, были бы большой помощью. Спасибо   -  person    schedule 29.03.2011
comment
Я использую SQL Server Management Studio. Я знаю 2 способа создать связанный сервер. Один использует запрос (например, в моем исходном вопросе), другой использует пользовательский интерфейс. В любом случае, чтобы это работало, вы должны сначала установить драйвер ODBC (Intersystems ODBC). Чтобы использовать пользовательский интерфейс для создания связанного сервера, подключитесь к нему, затем разверните «Объекты сервера», затем щелкните правой кнопкой мыши «связанные серверы» и выберите «Новый связанный сервер».   -  person George Duckett    schedule 30.03.2011
comment
Я столкнулся с той же проблемой, когда я не мог просмотреть каталог. Пока мне не удалось вывести каталог на экран. Мне удалось получить определения столбцов без входа в кэш и просмотра определений классов, выполнив следующие действия: SELECT * INTO tempdb.dbo.iAgentByApplicationStat FROM CC7..dbo.iAgentByApplicationStat, где 1=0; Затем я могу развернуть iAgentByApplicationStat в базе данных tempdb, чтобы увидеть определение схемы.   -  person john.da.costa    schedule 20.12.2011


Ответы (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.

Я делаю для отчетов CCM7 SSRS, пожалуйста, дайте мне знать, если вы сделаете то же самое. Мой MSN: [email protected] :)

person user642363    schedule 03.03.2011
comment
Фантастика, это именно то, что мне нужно было знать (я написал сценарий для созданного мной сервера, затем удалил указанную выше часть и воссоздал). Я также планирую использовать SSRS (добавлено в MSN) - person George Duckett; 04.03.2011