2012-01-10 5 views
2

Я пытаюсь работать с Openrowset на SQL Server 2008 R2, установленной в 64-разрядной машине Windows 2008.Когда я выполняю указанный ниже запрос, я получил ошибку, как показано ниже .Пожалуйста, помогите мне.Openrowset на SQL Server 2008 R2, установленный в 64-разрядной машине Windows 2008

SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','Excel 8.0;Database=E:\01112012.xls;','SELECT * FROM [Sheet1$]') 

ОШИБКА:

Msg 7403, уровень 16, состояние 1, строка 1 Поставщик OLE DB "Microsoft.Jet.OLEDB.4.0" не был зарегистрирован.

+1

После того, как я установил Microsoft Access Database Engine 2010 Redistributable, я изменил выше запрос, и он отлично работал для меня. Ниже приведен модифицированный запрос. SELECT * FROM OPENROWSET ('MICROSOFT.ACE.OLEDB.12.0', 'Excel 12.0; HDR = YES; DATABASE = E: \ 01112012.xls', sheet1 $) – Simhadri

ответ

3

Вы установили: ->Microsoft Access Database Engine 2010 Redistributable

  • Эта загрузка установить набор компонентов, которые облегчают передачу данных между существующими Microsoft Office файлы, такие как Microsoft Office Access 2010 (* .mdb и .accdb) и файлы Microsoft Office Excel 2010 ( .xls, * .xlsx и * .xlsb) в другие источники данных, такие как Microsoft SQL Server. Поддерживается также возможность подключения к существующим текстовым файлам. Драйверы ODBC и OLEDB устанавливаются для разработчиков приложений для разработки своих приложений с возможностью подключения к форматам файлов Office.
+0

Да, у меня это установлено на машине. – Simhadri

+0

После того, как я установил это, я изменил запрос выше, и он отлично работал для меня. Ниже приведен модифицированный запрос. выберите * из OPENROWSET ('MICROSOFT.ACE.OLEDB.12.0', ' Excel 12.0; HDR = YES; DATABASE = E: \ 01112012.xls', sheet1 $) – Simhadri

+0

Благодаря тонну @ KD7 – Simhadri

0

Для запуска OPENROWSET в 64-битной версии окон.

1- Установить AccessDatabaseEngine_x64.exe (требуется перезагрузка).

2- Если вы используете SQL Management Studio, запустите Management Studio как администратор. Если вы не запустили его как учетную запись администратора, вы получите эту ошибку (не удается инициализировать объект источника данных поставщика OLE DB «MICROSOFT.ACE.OLEDB.12.0» для связанного сервера «(null)».

3 -.. Выполните эту команду для настройки вашей базы данных

EXEC sp_configure 'show advanced options', 1; 
RECONFIGURE with override; 
GO 

EXEC sp_configure 'Ad Hoc Distributed Queries', 1; 
RECONFIGURE with override; 
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 

4- не использовать «выберите * из Лист1 $» в функции OPENROWSET Попробуйте этот код

select * from OPENROWSET('MICROSOFT.ACE.OLEDB.12.0', 'Excel 12.0;HDR=YES;DATABASE=D:\test.xlsx', sheet1$) 

Если еще у вас есть (32 бит), попробуйте перезапустить службу SQL и проверьте свой C: \ Windows \ Temp и посмотрите, есть ли у вас доступ к этому d или нет.

Смежные вопросы