Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 Странная проблема с импортом / экспортом в excel  [new]
e-Фрем
Guest
Добрый день, что бы это могло быть такое???

Есть два сервера, назовем их A и B.

На обеих установлен Microsoft.ACE.OLEDB.12.0 (наблюдается в списке провайдеров).

Заходим на B, подключаемся к серверу A - запрос
select * from openrowset(
  'Microsoft.ACE.OLEDB.12.0',
  'Excel 12.0;Database=D:\файл на сервере A.xlsx', 
  'select * from [Лист1$]'
)
отрабатывает. Точно так же заходим на A, подключаемся к B - и запрос
select * from openrowset(
  'Microsoft.ACE.OLEDB.12.0',
  'Excel 12.0;Database=D:\файл на сервере B.xlsx', 
  'select * from [Лист1$]'
)
отрабатывает. А вот если зайти на любой из серверов, подключиться к локальной БД и попытаться прочитать локальный файл - получим фак.

Msg 7303, Level 16, State 1, Line 12
Cannot initialize the data source object of OLE DB provider "Microsoft.ACE.OLEDB.12.0" for linked server "(null)".


Что показательно, экспортировать данные в файл штатными средствами MS SMS, через мастер импорта-экспорта, с обеих серверов так же не получается: на втором шаге, после того, как мы указываем, куда экспортировать данные (в файл excel 2007-2010), возникает ошибка
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. (System.Data)

Что это за бред, и как с ним бороться?
7 фев 18, 15:37    [21173508]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
автор
3аходим на B, подключаемся к серверу A:
Database=D:\файл на сервере A.xlsx

почему вы считаете, что "подключаетесь к серверу А"?
вы находитесь на B и по его же локальному диску D шаритесь
7 фев 18, 16:50    [21173880]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
e-Фрем
Guest
Спасибо за ответ,
Yasha123
почему вы считаете, что "подключаетесь к серверу А"?
вы находитесь на B и по его же локальному диску D шаритесь

- захожу на В по RDP, запускаю там Managament Studio, коннекчусь к A.

Файл "D:\файл на сервере A.xlsx" физически находится на A, для избежания путаницы, имя этого файла отличается от имени файла на B.

Запрос
select * from openrowset(
  'Microsoft.ACE.OLEDB.12.0',
  'Excel 12.0;Database=D:\файл на сервере A.xlsx', 
  'select * from [Лист1$]'
)
отрабатывает.

Затем я захожу по RDP на A - туда, где находится файл, - запускаю Managament Studio, снова коннекчусь к A, то же самый запрос уже не отрабатывает.
7 фев 18, 17:25    [21174036]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
выполните локально и "на А через В"
select is_srvrolemember('sysadmin')
7 фев 18, 17:56    [21174167]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
e-Фрем
Guest
Yasha123
выполните локально и "на А через В"
select is_srvrolemember('sysadmin')

"1" в обеих случаях
7 фев 18, 18:10    [21174218]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
e-Фрем
Guest
А что, результаты
select is_srvrolemember('sysadmin')
могли оказаться различными?
7 фев 18, 18:15    [21174232]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
e-Фрем
А что, результаты
select is_srvrolemember('sysadmin')
могли оказаться различными?

да.
когда на компе включен UAC,
а сисадмина получаете не в явном виде, а через группу локальных виндовых администраторов,
то можно вдруг оказаться не-сисадмионом, законнектившись локально,
если студия не запущена от админа.
а удаленно UAC не ощипывает
7 фев 18, 18:20    [21174246]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
e-Фрем
Guest
Yasha123,

спасибо, познавательно. В данном случае права предоставлены явно, и дело должно быть не в них. Но в чем - ???
7 фев 18, 18:38    [21174305]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
больше идей пока что нет.
не знаю, за что еще зацепиться из вашего описания.
а по поводу вот этого:
e-Фрем
Что показательно, экспортировать данные в файл штатными средствами MS SMS, через мастер импорта-экспорта, с обеих серверов так же не получается: на втором шаге, после того, как мы указываем, куда экспортировать данные (в файл excel 2007-2010), возникает ошибка
The 'Microsoft.ACE.OLEDB.12.0' provider is not registered on the local machine. (System.Data)

Что это за бред, и как с ним бороться?

когда вы запускаете визард из студии,
он у вас запускается х32.
откройте Task Manager и убедитесь (на картинке выделено красным).
мне тоже только что такое выдало.

тем не менее, я точно знаю, что провайдер на моем компе имеется.
сервер его видит (см.картинку студии)
и кроме того, если руками запустить нужный визард х64 (голубой на картинке),
все прекрасно импортируется/экспортируется

К сообщению приложен файл. Размер - 131Kb
8 фев 18, 11:10    [21175635]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
e-Фрем
Guest
Yasha123,

Спасибо, проверил, действительно: из студии запускается х32 версия визарда. Версию х64 можно запустить руками, и тогда все работает.

В части работы openrowset - подняли на витруалке Microsoft SQL Server 2008 R2, поставили Microsoft.ACE.OLEDB.12.0, сконфигурировали - упс. При подключении к локальному инстансу файлы .xlsx благополучно читаются. Единственное объяснение, провайдер Microsoft.ACE.OLEDB.12.0 перестал полноценно работать со старшими версиями SQL Server (2014, 2016).

Вы лично не пробовали читать локальный xlsx-файл, подключившись к локальному же инстансу SQL Server?

У меня под рукой сейчас три экземпляра SQL Server версии 2014 и старше, и везде ситуация та же, что описана в первом посте данной темы.
9 фев 18, 07:56    [21178735]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
dao
Member

Откуда: Москва
Сообщений: 771
e-Фрем
Yasha123,

Спасибо, проверил, действительно: из студии запускается х32 версия визарда. Версию х64 можно запустить руками, и тогда все работает.

В части работы openrowset - подняли на витруалке Microsoft SQL Server 2008 R2, поставили Microsoft.ACE.OLEDB.12.0, сконфигурировали - упс. При подключении к локальному инстансу файлы .xlsx благополучно читаются. Единственное объяснение, провайдер Microsoft.ACE.OLEDB.12.0 перестал полноценно работать со старшими версиями SQL Server (2014, 2016).

Вы лично не пробовали читать локальный xlsx-файл, подключившись к локальному же инстансу SQL Server?

У меня под рукой сейчас три экземпляра SQL Server версии 2014 и старше, и везде ситуация та же, что описана в первом посте данной темы.

таки кажись об этом давно было сказано? где-то таки было написано - 32разрядные не будут работать начиная с какой-то версией sql
9 фев 18, 09:52    [21178892]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
e-Фрем
Guest
dao
32разрядные не будут работать начиная с какой-то версией sql


Тут фишка в том, что не работает 64-битный провайдер. А вернее, работает, но как-то странно.
9 фев 18, 11:06    [21179115]     Ответить | Цитировать Сообщить модератору
 Re: Странная проблема с импортом / экспортом в excel  [new]
Yasha123
Member

Откуда:
Сообщений: 1833
e-Фрем
Вы лично не пробовали читать локальный xlsx-файл, подключившись к локальному же инстансу SQL Server?

У меня под рукой сейчас три экземпляра SQL Server версии 2014 и старше, и везде ситуация та же, что описана в первом посте данной темы.

у меня сейчас локально 2005 х32, 2012 х64 и 2016 х64.
оба х64 читают без проблем локально.

К сообщению приложен файл. Размер - 119Kb
9 фев 18, 12:55    [21179616]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить