Witam ponownie,
tym razem z niezbyt błahym problemem. Pokrótce co chce osiągnąć: Chcę w paczce SSIS ładować (właściwie kasować starą i tworzyć na nowo) tabele z pliku excel (office 2010 xlsx) - przy czym plik excel każdego dnia może się zmieniać (tj. nie ma zawsze takiej samej struktury - liczba kolumn może się zmienić) i dla tego nie mogę użyć standardowej metody połączenia się po prostu do źródła excel i kopiowania danych.
Ok zatem cel jasny - teraz rozwiązanie - po rozmowach z wujem G. - wyczaiłem opcje ala:
Select * into tst.DaneTest FROM OPENROWSET('Microsoft.ACE.OLEDB.12.0', 'Excel 12.0;Database=D:\Transport\ProjectStatus.xlsx;HDR=YES', 'SELECT * FROM [Status$]')
Oczywiście nie mogło byc za prosto więc różne tam błedy wyskakiwały w związku z "ad hoc distributed queries" i innymi ale wsio rozwiązałem dzięki google:
EXEC sp_configure 'show advanced options', 1
RECONFIGURE
GO
EXEC sp_configure 'ad hoc distributed queries', 1
RECONFIGURE
GO
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'AllowInProcess', 1
EXEC sp_MSset_oledb_prop N'Microsoft.ACE.OLEDB.12.0', N'DynamicParam', 1
GO
Ok 2 błędy rozwiązane .... pojawia się nowy:
"The 32-bit OLE DB provider "Microsoft.ACE.OLEDB.12.0" cannot be loaded in-process on a 64-bit SQL Server."
tu wspomnę, że pracuję na Microsoft SQL Server 2014 - 12.0.4213.0 (X64) zainstalowany na Windows Server 2008 64 bit.
No więc OK .... trzeba przeinstalować sterowniki "MS office Access database engine" z 32 na 64. Ok zrobiłem to dla wersji 2010 i ..... Voila - Działa - ładuje tablicez excela do bazy.
No i niby problem rozwiązany powiecie ... ale teraz przechodzimy do Meritum:
Na tym samym serwerze w innym projekcie SSIS mam popisane paczki gdzie ciągnę dane z baz danych Accessa ver. 2010 czyli accdb. I .... żeby było śmieszniej te z kolei wymagają (o ile nic nigdzie nie ominąłem to potwierdzone w wielu wątkach na google) .... sterownika 32 bitowego .... i nie ma zmiłuj na 64 nie poleci.
No i dla tego ten wątek i prośba do Was .... co z tym począć ... jak żyć ? Moze ktoś miał podobny problem i go jakoś obszedł ... a może znacie inną / lepszą metodę na pobieranie danych z excela który się zmienia ? ..... Poradźcie coś.... liczę na Was :) (jak zwykle)
Z góry dzięki,
Pozdrawiam