Posts Tagged ‘mdb’

Dostęp do danych bazy accesa (mdb) w 64-bitowym środowisku SQL Server 2008

Wednesday, July 27th, 2011

Potrzebowałem uzyskać dostęp do bazy danych accesa. Niestety okazało się, że Microsoft nie wydał 64 bitowej wersji sterownika “Microsoft.Jet.OLEDB.4.0″ i połączenie za pomocą OLEDB nie wchodzi w grę. Jednym z rozwiązań do importu danych było wykorzystanie Integration Services i wymuszenie użycia trybu 32 bitowego przy uruchamiania pakietu. Rozwiązanie to nie było do końca dobre, bo potrzebowałem dostępu do aktualnych danych. Znalazłem na to rozwiązanie.

1. Na serwerze z 64-bitowym SQL Serverem zainstalowałem 32-bitową wersję SQL Server Express.

2. Utworzyłem linked server pomiędzy bazą danych Accessa i SQL Server Expressem.

EXEC sp_addlinkedserver
@server = N'AccessDB',
@provider = N'Microsoft.Jet.OLEDB.4.0',
@srvproduct = N'OLE DB Provider for Jet',
@datasrc = N'C:\DB\accessdb.mdb'
GO

Wszystko o linked serverach można znaleźć w msdn Microsoftu.

3. Komunikacja pomiędzy 32 bitowym i 64 bitowym zapewniłem dzięki stworzeniu kolejnego linked servera.

EXEC sp_addlinkedserver @server=N'Express32', @srvproduct=N'', @provider=N'SQLNCLI', @datasrc= N'ServerName\SQLEXPRESS'; 

4. W expressie dla wygody stworzyłem widoki do interesujących mnie tabeli, m.in widok vTest. W 64bitowym SQL Server mogę już korzystać z danych z accessa!

SELECT * FROM Express32.Test.dbo.vTest

 

schemat poglądowy