3

我需要一点帮助来解决这个问题,因为我是存储过程的新手。我正在尝试使用此存储过程将 .DBF 表导入 Sql Server 2008。

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”尚未注册。这不是真的,我已经安装了它,它在我的其他应用程序中运行良好。

我也尝试使用此提供程序以这种方式运行它,但我收到此错误消息无法为链接服务器“(null)”初始化 OLE DB 提供程序“Microsoft.Jet.OLEDB.4.0”的数据源对象。

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

创建此存储过程的最简单方法是什么?我希望它是一个存储过程,而不是向导或程序,所以请不要给我任何程序。

4

3 回答 3

4

你可以试试

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

上一个问题

于 2009-05-19T22:38:50.767 回答
2

我不确定 VFPOLEDB 的“友好名称”,但只要您按名称指向特定的 DBF 文件,第二个 SP 应该可以工作(即使用“Microsoft.Jet.OLEDB.4.0”)。看起来您指向的是一个目录,而不是实际的文件。

更多信息可在以下网址找到:http: //msdn.microsoft.com/en-us/library/ms190312.aspx

于 2009-05-19T22:35:18.417 回答
0

对于其他寻找此问题的答案的人,此错误的原因是为“Just Me”而不是“Everyone”安装 Foxpro 驱动程序。

运行“所有人”的安装程序以避免此错误。

于 2017-01-31T04:21:36.430 回答