2008-09-09 38 views

回答

15

使用鏈接的服務器或使用OPENROWSET,例如

SELECT * into SomeTable 
FROM OPENROWSET('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver; 
SourceDB=\\SomeServer\SomePath\; 
SourceType=DBF', 
'SELECT * FROM SomeDBF') 
+5

我用它,但出現此錯誤---- OLE DB提供程序「MSDASQL」鏈接服務器「(空)」返回了消息「[微軟] [ODBC驅動程序管理器]驅動程序不支持此功能」。 無法爲鏈接服務器「(null)」初始化OLE DB提供程序「MSDASQL」的數據源對象。 – sqlchild 2011-03-22 05:52:36

+1

@sqlchild:我必須安裝它才能爲我工作。 http://msdn.microsoft.com/en-us/vfoxpro/bb​​190233 – JoshBaltzell 2011-06-10 13:13:19

+0

@JoshBaltzell:當我嘗試安裝該ODBC驅動程序時出現以下錯誤:「錯誤1918年:安裝ODBC驅動程序時出錯:Microsoft Visual FoxPro Diver,ODBC錯誤13.由於系統錯誤代碼1114,無法加載Microsoft Visual FoxPro Diver ODBC驅動程序的安裝例程:動態鏈接庫(DLL)初始化例程失敗(C:\ Windows \ system32 \ vfpodbc.dll)。驗證文件Microsoft Visual FoxPro驅動程序是否存在,並且您可以訪問它。「 – Zach 2012-01-12 20:46:20

2

什麼終於爲我們工作是使用FoxPro OLEDB Driver,並使用以下語法。在我們的例子中,我們使用的是SQL 2008

select * from 
    openrowset('VFPOLEDB','\\VM-GIS\E\Projects\mymap.dbf';''; 
    '','SELECT * FROM mymap') 

替代\\VM-GIS...與DBF文件的位置,無論是UNC或驅動器路徑。另外,FROM後面的mymap替換爲不帶.dbf擴展名的DBF文件的名稱。

4

我能夠使用的答案從jnovation但因爲有什麼錯我的領域,我簡單地選擇特定字段,而不是所有的,如:

select * into CERTDATA 
from openrowset('VFPOLEDB','C:\SomePath\CERTDATA.DBF';''; 
    '','SELECT ACTUAL, CERTID, FROM CERTDATA') 

非常令人興奮的終於有一個可行的答案感謝大家在這裏!