Добро пожаловать в форум, Guest  >>   Войти | Регистрация | Поиск | Правила | В избранное | Подписаться
Все форумы / Microsoft SQL Server Новый топик    Ответить
 From Excel to SQL  [new]
kornilov
Member

Откуда:
Сообщений: 92
Уважаемые коллеги, эта тема была уже много раз проговорена, но прошу вашей помощи, возможно я что то упустил.
Select @@Version


Microsoft SQL Server 2008 R2 (RTM) - 10.50.1600.1 (X64) Apr 2 2010 15:48:46 Copyright (c) Microsoft Corporation Enterprise Edition (64-bit) on Windows NT 5.2 <X64> (Build 3790: Service Pack 2)

 exec sp_enum_oledb_providers



SQLOLEDB {0C7FF16C-38E3-11d0-97AB-00C04FC2AD98} Microsoft OLE DB Provider for SQL Server

MSOLAP {10154F28-4979-4166-B114-3E7A7926C747} Microsoft OLE DB Provider for Analysis Services 10.0
OraOLEDB.Oracle {3F63C36E-51A3-11D2-BB7D-00C04FA30080} Oracle Provider for OLE DB
ADsDSOObject {549365d0-ec26-11cf-8310-00aa00b505db} OLE DB Provider for Microsoft Directory Services
SQLNCLI {85ECAFCC-BDD9-4b03-97A8-FA65CBE3859B} SQL Native Client
SQLNCLI10 {8F4A6B68-4F36-4e3c-BE81-BC7CA4E9C45C} SQL Server Native Client 10.0
MSDAOSP {dfc8bdc0-e378-11d0-9b30-0080c7e9fe95} Microsoft OLE DB Simple Provider
SQLXMLOLEDB {F64E2F39-42A1-4088-A55D-038ABF5FAE10} SQLXMLOLEDB
SQLXMLOLEDB.4.0 {F64E2F39-42A1-4088-A55D-038ABF5FAE14} SQLXMLOLEDB.4.0
MSIDXS {F9AE8980-7E52-11d0-8964-00C04FD611D7} Microsoft OLE DB Provider for Indexing Service


Провайдер есть.
Скачал MicrosoftAccessDatabaseEngine - установил.
Выполняю команды:

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

EXEC sp_MSset_oledb_prop 'Microsoft.ACE.OLEDB.12.0', 'AllowInProcess' , 1;
EXEC sp_MSset_oledb_prop 'Microsoft.ACE.OLEDB.12.0', 'DynamicParameters', 1;


Но запрос:
select * from openrowset ('Microsoft.ACE.OLEDB.12.0','Excel 12.0;Database=C:\Documents and Settings\KORNIS01\Desktop\Microsoft Office Excel Worksheet.xlsx;HDR=YES','SELECT * from [Лист1$]')


всё равно выдает ошибку:
Msg 7308, Level 16, State 1, Line 1
OLE DB provider 'Microsoft.ACE.OLEDB.12.0' cannot be used for distributed queries because the provider is configured to run in single-threaded apartment mode.

Подскажите где я что то упускаю?
Заранее спасибо
6 окт 14, 15:30    [16666624]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
Maxx
Member [скрыт]

Откуда:
Сообщений: 24290
Разрядность офисса,провайдера и сиквела - совпадають ????
6 окт 14, 15:52    [16666827]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
KV
Member

Откуда:
Сообщений: 327
SELECT * FROM OPENDATASOURCE('Microsoft.Jet.OLEDB.4.0',
'Data Source=D:\Inspections\kb_am_sp1.xls;Extended Properties=Excel 8.0')...[Лист1$]
GO
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\Inspections\kb_am_sp1.xls', [Лист1$])
GO
SELECT * FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0',
'Excel 8.0;Database=D:\Inspections\kb_am_sp1.xls', 'SELECT * FROM [Лист1$]')
GO
6 окт 14, 17:55    [16667630]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
kornilov
Но запрос:

Вы уверены, что показали весь запрос ?
6 окт 14, 20:28    [16668157]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
kornilov
Провайдер есть.
Скачал MicrosoftAccessDatabaseEngine - установил.

И что то я не вижу "провайдер есть" Microsoft.ACE.OLEDB.12.0
6 окт 14, 20:29    [16668158]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
kornilov
Member

Откуда:
Сообщений: 92
У меня 64 битная версия SQL, поэтому использовать JET неполучится.
Разрядность SQL - 64 Office -32
GLORY, да это весь запрос, а разве там чего то не хватает?

SQLOLEDB {0C7FF16C-38E3-11d0-97AB-00C04FC2AD98} Microsoft OLE DB Provider for SQL Server - А вот здесь должно быть указано что это именно 12.0???
7 окт 14, 11:41    [16670083]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
kornilov
SQLOLEDB {0C7FF16C-38E3-11d0-97AB-00C04FC2AD98} Microsoft OLE DB Provider for SQL Server - А вот здесь должно быть указано что это именно 12.0???

Это OLE DB Provider for SQL Server. Где вы увидели в нем ACE.OLEDB.12.0 ?

Сообщение было отредактировано: 7 окт 14, 11:47
7 окт 14, 11:47    [16670133]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
kornilov
Разрядность SQL - 64 Office -32

И как вы себе представляете работу 64битной программы с 32хбитным провайдером ?
7 окт 14, 11:48    [16670144]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
kornilov
Member

Откуда:
Сообщений: 92
Glory,
для этого есть http://www.microsoft.com/en-us/download/details.aspx?id=13255
Но как я понял чтобы корректно работало всё. Необходимо снести офис полностью потом поставить это провайдер а потом заново ставить офис. На установленную версию не встанет... Может я и не прав
7 окт 14, 12:46    [16670592]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
Glory
Member

Откуда:
Сообщений: 104751
kornilov
для этого есть http://www.microsoft.com/en-us/download/details.aspx?id=13255

Он должен быть есть в списке провайдеров, которые видит ваш MSSQL
7 окт 14, 12:48    [16670608]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
смотрю_тут
Member

Откуда:
Сообщений: 1368
Glory
kornilov
Разрядность SQL - 64 Office -32

И как вы себе представляете работу 64битной программы с 32хбитным провайдером ?

либо создать пакет SSIS и запустить его в 32 разрядном режиме.
7 окт 14, 12:57    [16670664]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
wql
Member

Откуда:
Сообщений: 7
автор
о как я понял чтобы корректно работало всё. Необходимо снести офис полностью потом поставить это провайдер а потом заново ставить офис. На установленную версию не встанет...

Не обязательно
Нашел вот такой хак:
ставим AccessDatabaseEngine_x64.exe с ключем /quiet (без него будет ругаться на установленный office x86)

Затем проверяем и при необходимости создаем ключи в реестре по примерному пути:
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Microsoft SQL Server\MSSQL10_50.MSSQLSERVER\Providers\Microsoft.ACE.OLEDB.12.0]
"AllowInProcess"=dword:00000001
"DynamicParameters"=dword:00000001
7 окт 14, 13:00    [16670681]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
o-o
Guest
wql
ставим AccessDatabaseEngine_x64.exe с ключем /quiet


вроде было с ключом \passive, чтоб на офис х32 не квакал
блин, ну ВСЕ сегодня режут, не могу ни одну страницу открыть, гуглите, кто может, не могу ссылки давать сегодня
7 окт 14, 13:12    [16670748]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
Владислав Колосов
Member

Откуда:
Сообщений: 8815
Камрады пишут, что все должно быть х64 - сервер, провайдер и офис.
7 окт 14, 13:32    [16670882]     Ответить | Цитировать Сообщить модератору
 Re: From Excel to SQL  [new]
o-o
Guest
у меня одно что-то открылось, вот: The ‘Microsoft.ACE.OLEDB.12.0′ provider is not registered on the local machine
сервер и драйвер будут х64, но типа офис х32 можно не сносить.
7 окт 14, 13:55    [16671046]     Ответить | Цитировать Сообщить модератору
Все форумы / Microsoft SQL Server Ответить