測試環境:
- Win10 64bit
- SQL Server 2005 Express 32bit
- VFP 9.0
安裝 VFPOLEDB Driver
VFPOLEDB Driver 可以從 MS 官方網站下載,但該 Driver 是 32bit 的喔,載點:Microsoft OLE DB Provider for Visual FoxPro 9.0
利用 sp_addlinkedserver 建立 VFP Linked Server
-- 建立 DBF Linbked Server
EXEC Master.dbo.sp_addlinkedserver
@server = 'VFPOleDB-DBF',
@srvproduct = 'VFP',
@provider = 'VFPOLEDB',
-- 指定 DBF 所在資料夾,該路徑為 VFP Sample Data 資料夾所在
@datasrc = 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SAMPLES\DATA'
GO
-- 建立 DBC Linbked Server
EXEC Master.dbo.sp_addlinkedserver
@server = 'VFPOleDB-DBC',
@srvproduct = 'VFP',
@provider = 'VFPOLEDB',
-- 指定 DBC 所在位置,testdata.dbc 為 VFP Sample Data
@datasrc = 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SAMPLES\DATA\testdata.dbc'
GO
透過已建立的 Linked Server 讀取 VFP 檔案-- 讀取 DBF 檔案
SELECT * FROM [VFPOleDB-DBF]...Products
SELECT * FROM OPENQUERY ([VFPOleDB-DBF], 'SELECT * FROM Products')
-- 讀取 DBC 檔案
SELECT * FROM [VFPOleDB-DBC]...Products
SELECT * FROM OPENQUERY ([VFPOleDB-DBC], 'SELECT * FROM Products')
利用 OPENROWSET() 直接透過 VFPOLEDB 存取 VFP 檔案-- 讀取 DBF 檔案
SELECT * FROM OPENROWSET ('VFPOLEDB' , 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SAMPLES\DATA' ; ' ' ; ' ' , 'SELECT * FROM Products')
-- 讀取 DBC 檔案
SELECT * FROM OPENROWSET ('VFPOLEDB' , 'C:\PROGRAM FILES (X86)\MICROSOFT VISUAL FOXPRO 9\SAMPLES\DATA\testdata.dbc' ; ' ' ; ' ' , 'SELECT * FROM Products')
上述三種查詢方式都可以得到下圖結果
沒有留言:
張貼留言