Z problemem tym zetknąłem się niedawno. Jeszcze stare bazki dbf-owe nie upadły. Na różnych forach (w tym wss i codeguru) są opisy, które nie do końca działają lub opisują tylko część problemu.
W pierwszej kolejności aby można było tworzyć zapytania ad-hockowe do tych baz należy zmienic konfigurację SQL Servera:
1. rozszerzenie na opcje zaawansowane
exec sp_configure 'show advanced options',1
reconfigure with override;
2. Włączenie możliwości zadawania zapytań typu Ad-Hoc
exec sp_configure 'Ad Hoc Distributed Queries',1
reconfigure with override;
3. wyświetlenie zawartości bazy z pliku BazaDBF.dbf gdzie:
Pole_1, Pole_2, ..., Pole_n - pola bazy danych
„MSDASQL" - provider OLE DB
DBQ=C:Temp - ścieżka do folderu zawierającego pliki dbf
{Microsoft dBASE Driver (*.dbf)) - driver
BazaDBF - nazwa pliku dbf (nazwa całej bazy danych typu dbf, która jest zarazem jedną tabela o nazwie BazaDBF)
---------------------------
SELECT Pole_1, Pole_2, ..., Pole_n
FROM OPENROWSET('MSDASQL','Driver={Microsoft dBASE Driver (*.dbf)};DBQ=C:Temp','SELECT * FROM BazaDBF')