2009-05-19 146 views
2

因爲我是存儲過程的新手,所以我需要一些幫助來解決這個問題。我正在嘗試使用此存儲過程將.DBF表導入Sql Server 2008。將DBF文件導入到Sql Server中

CREATE PROCEDURE spImportDB 
-- Add the parameters for the stored procedure here 

AS 
BEGIN 

-- Insert statements for procedure here 

SELECT * into Products 
FROM OPENROWSET('vfpoledb','C:\Users\Admin\Doc\Data\DBF', 
'SELECT * FROM MyTable') 

END 
GO 

我收到此錯誤消息。 OLE DB提供程序「vfpoledb」尚未註冊。這是不正確的,我已經安裝它,它在我的其他應用程序中正常工作。

我也試過用這個提供程序以這種方式運行它,但我收到此錯誤消息 無法初始化鏈接服務器的OLE DB提供程序「Microsoft.Jet.OLEDB.4.0」的數據源對象「(null)」 。

CREATE PROCEDURE spImportDB 
-- Add the parameters for the stored procedure here 

AS 
BEGIN 

-- Insert statements for procedure here 

SELECT * into Products 
FROM OPENROWSET('Microsoft.Jet.OLEDB.4.0','C:\Users\Admin\Doc\Data\DBF', 
'SELECT * FROM MyTable') 

END 
GO 

什麼是最簡單的方法來創建此存儲過程?我希望它是一個存儲過程而不是一個嚮導或程序,所以請不要給我任何程序。

+0

[如何在SQL Server中導入DBF文件]可能的重複(https://stackoverflow.com/questions/52822/how-to-import-a-dbf-file-in-sql-server) – Jerry 2017-11-14 10:43:21

回答

3

您可以嘗試

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

this previous question

+0

I因爲我聽說odbc驅動程序不再支持,但它的工作原理是想使用視覺狐狸pro oledb dll。 – jumbojs 2009-05-19 22:51:27

2

我不確定VFPOLEDB的「友好名稱」,但只要指向特定的DBF文件,第二個SP應該可以工作(即使用'Microsoft.Jet.OLEDB.4.0')按名字。它看起來像是指向一個目錄,而不是實際的文件。

進一步的信息可參見: http://msdn.microsoft.com/en-us/library/ms190312.aspx

0

爲別人尋找一個答案,這個錯誤的原因是安裝Foxpro驅動程序爲「Just Me」而不是「Everyone」。

運行「Everyone」的安裝程序以避免此錯誤。