2010-02-16 64 views
2

我試圖從DBF文件導入數據到SQL表使用以下命令 -如何使用SQL腳本將數據從DBF導入SQL?

select * 
from openrowset('MSDASQL', 
'Driver={Microsoft dBase Driver (*.dbf)};DBQ=E:\data\;', 
'select * from E:\data\a.dbf') 

但它沒有說

OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC dBase Driver]General Warning Unable to open registry key 'Temporary (volatile) Jet DSN for process 0x120 Thread 0x3084 DBC 0x303dfbc Xbase'.".  
OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC dBase Driver] Disk or network error.".  
Msg 7303, Level 16, State 1, Line 1  
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)". 

任何線索,爲什麼它給錯誤?對於第二個錯誤,我已經完全訪問臨時文件夾,如某些博客所建議的。它仍然顯示兩個錯誤。

+0

http://www.excel-sql-server.com/excel-import-to-sql-server-using-distributed-queries.htm – user1097489

回答

1

您的SELECT指定了文件的路徑 - 您應該指定表名稱,而這可能是'a'。

+0

我也試過。但同樣的錯誤。 – malay

1

爲了補充CodeByMoonlight,駕駛員信息點的數據文件中找到的路徑,所以那麼你的後續查詢只能是「SELECT *應從」因爲兩者的路徑和擴展名爲.dbf應該隱含

3

如果文件名是.dbf 試試這個:

select * from 
openrowset('MSDASQL', 
'Driver={Microsoft dBASE Driver (*.dbf)};DriverID=277;Dbq=E:\Data;', 
'SELECT * FROM a') 
1

您使用時的司機是32位,它正在尋求64位ODBC數據源64位SQL Server。沒有爲FoxPro中(也DBF)一種解決方法是應該的dBASE以及工作:

開放使用OLE DB .NET框架提供那麼MS OLE DB提供程序VFP在Visual Studio中新的SqlDataSource。連接字符串應該是這樣的(或UNC)

Provider=VFPOLEDB.1;Data Source=h:\Programs\Data;Persist Security Info=True;User ID=Your_user;Password=your_password 

的配置嚮導包括測試你的SQL的一部分。您可以使用此運行臨時SQL。

相關問題