Чтение данных из базы данных Access 2010 с сервера SQL - PullRequest
0 голосов
/ 13 июня 2019

Я собираюсь рассказать вам о своей среде: Windows Server 2012 R2 64, ACCESS 2010 32, SQL SERVER 2008 R2 64, работающий с учетной записью администратора, AccessDatabaseEngine 32. Мне нужно подключить sql к bbdd-доступу 2010 года.Я попытался создать связанный сервер и использовать OPENDATASOURCE и OPENROWSET, но всегда получаю сообщение об ошибке

Поставщик OLE DB «Microsoft.ACE.OLEDB.12.0» не может использоваться для распределенных запросов, поскольку он настроендля запуска в режиме простого управляемого потока.

Я искал в Интернете, и я выполнил все шаги, но у меня все еще та же ошибка, я также использовал SSMS с учетными записями администратора и sa и всегдата же ошибка.Любопытно и странно то, что после установки AccessDatabaseEngine 32 «Microsoft.ACE.OLEDB» не появляется в провайдерах в объектах сервера.

Большое спасибо и поздравления.

EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
EXEC master.dbo.sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParameters', 1
exec sp_configure 'Advanced', 1
RECONFIGURE
GO
exec sp_configure 'Ad Hoc Distributed Queries', 1
RECONFIGURE
GO
exec sp_configure 'xp_cmdshell', 1
RECONFIGURE
GO
sp_configure 'show advanced options', 1
RECONFIGURE
GO
sp_configure 'Ad Hoc Distributed Queries', 1
GO

EXEC sp_addlinkedserver   
   @server = N'DATOS',   
   @provider = N'Microsoft.ACE.OLEDB.12.0',   
   @srvproduct = N'OLE DB Provider for ACE',  
   @datasrc = N'C:\SERVIDOR\DATOS\BBDDs.accdb';  
GO


SELECT id From OpenRowset('Microsoft.ACE.OLEDB.12.0',';Database=C:\SERVIDOR\DATOS\BBDDs.accdb;','SELECT * from Productos') as B
GO

SELECT *  FROM OPENDATASOURCE('Microsoft.ACE.OLEDB.12.0','Data Source=C:\SERVIDOR\DATOS\BBDDs.accdb')...Productos
GO

Ответы [ 2 ]

0 голосов
/ 14 июня 2019

Включить environemnt.

EXEC sp_configure 'show advanced options', 1;  
GO  
RECONFIGURE;  
GO  
EXEC sp_configure 'Ad Hoc Distributed Queries', 1;  
GO  
RECONFIGURE;  
GO

Затем проверьте, работает ли это.

Insert Into database.schema.yourtable SELECT * FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0',
'Excel 12.0 Xml;HDR=YES;Database=E:\Data\test.xls','SELECT * FROM [sheet1$]');
0 голосов
/ 13 июня 2019

Попробуйте установить 64-битную версию драйвера OLEDB

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...