Подключение файлов MS Excel — различия между версиями

Материал из Oktell
Перейти к: навигация, поиск
Строка 39: Строка 39:
 
  EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
 
  EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
 
  GO
 
  GO
 +
 +
 +
Используемые материалы: http://habrahabr.ru/post/219415/ и [http://social.msdn.microsoft.com/Forums/sqlserver/en-US/bb2dc720-f8f9-4b93-b5d1-cfb4f8a8b1cb/the-ole-db-provider-microsoftaceoledb120-for-linked-server-null-reported-an-error-access?forum=sqldataaccess http://social.msdn.microsoft.com]

Версия 08:34, 30 сентября 2014

Наверх

В данной статье описывается пример подключения Excel-файла sample.xlsx на примере сервера MSSQL 2008 SP3 x64.

Шаг 1. Для начала работы скачайте провайдера Microsoft.ACE.OLEDB.12.0 по ссылке [1].

Если у вас 64-битная версия SQL Server используйте установочный файл AccessDatabaseEngine_x64.exe.


Шаг 2. Для установки провайдера используйте запуск файла через командную строку с ключом /passive.

C:\AccessDatabaseEngine_x64.exe /passive 


Шаг 3. Чтобы прилинковать Excel файл выполните следующие запросы в SQL Server Management Studio

exec sp_addlinkedserver @server = 'XlsLnkSrv', 
@srvproduct = 'ACE 12.0', 
@provider = 'Microsoft.ACE.OLEDB.12.0', 
@datasrc = 'C:\Sample.xlsx', 
@provstr = 'Excel 12.0; HDR=Yes'

где

  • XlsLnkSrv - название связанного сервера
  • C:\Sample.xlsx - абсолютный путь к требуемому Excel-файлу


Считать данные можно с помощью команды

select * from openquery (XlsLnkSrv, 'Select * from [Sheet1$]')


ВНИМАНИЕ: При возникновении ошибки Cannot get the column information from OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)" выполните следующий запрос:

USE [master]
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'AllowInProcess' , 1
GO
EXEC master . dbo. sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0' , N'DynamicParameters' , 1
GO


Используемые материалы: http://habrahabr.ru/post/219415/ и http://social.msdn.microsoft.com