Я создал связанный сервер в моей SSMS с сервером AS400, используя это:
EXEC sp_addlinkedserver
@server = N'AS400',
@srvproduct=N'DB2 for i',
@provider=N'IBMDA400',
@datasrc=N'192.168.1.XXX',
@provstr=N'User Id=USER;Password=PASS;Default Collection=XXXX;Catalog Library List=XXXX;Force Translate=0;'
EXEC sp_addlinkedsrvlogin
@rmtsrvname=N'AS400',
@useself=N'False',
@locallogin=NULL,
@rmtuser=N'USER',
@rmtpassword='PASS'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'collation compatible', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'data access', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'rpc', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'rpc out', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'use remote collation', @optvalue=N'true'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'collation name', @optvalue=null
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'connect timeout', @optvalue=N'90'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'query timeout', @optvalue=N'90'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'dist', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'pub', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'sub', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'lazy schema validation', @optvalue=N'false'
EXEC master.dbo.sp_serveroption @server=N'AS400', @optname=N'remote proc transaction promotion', @optvalue=N'true'
Затем я могу получить доступ к данным, используя Select, и все в порядке. Но через некоторое время появляется это сообщение:
Невозможно создать дескриптор доступа к столбцу для поставщика OLE DB 'IBMDA400' связанного сервера 'AS400'
Мне нужно для доступа к данным каждый раз, какие-либо ошибки в моем коде?