Sql server 正在尝试将FoxPro DBF文件导入SQL Server

Sql server 正在尝试将FoxPro DBF文件导入SQL Server,sql-server,foxpro,dbf,openrowset,Sql Server,Foxpro,Dbf,Openrowset,正如标题所说,我正在尝试使用openrowset将FoxPro dbf文件导入sql server。首先,我尝试将DBF导出到xls文件,并使用导入/导出向导进行导入。这在正常情况下工作得很好,但是有一个字段有时包含一个很长的字符串,在从dbf导出到xls的过程中,该字符串被截断为4096个字符 我发现了一个关于如何使用openrowset执行此操作的说明 当我尝试第一个答案时: select * from openrowset('MSDASQL', 'Driver=Microsoft Visu

正如标题所说,我正在尝试使用openrowset将FoxPro dbf文件导入sql server。首先,我尝试将DBF导出到xls文件,并使用导入/导出向导进行导入。这在正常情况下工作得很好,但是有一个字段有时包含一个很长的字符串,在从dbf导出到xls的过程中,该字符串被截断为4096个字符

我发现了一个关于如何使用openrowset执行此操作的说明

当我尝试第一个答案时:

select *
from openrowset('MSDASQL', 'Driver=Microsoft Visual FoxPro Driver;
SourceDB=\\path\;
SourceType=DBF',
'select * from TABLE.DBF')
我得到一个错误:

OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".
Msg 7403, Level 16, State 1, Line 1
The OLE DB provider "VFPOLEDB" has not been registered.
当我尝试第二个答案时:

select *
from openrowset('VFPOLEDB',
'\\Path\';'';'',
'select * from TABLE.DBF')
我得到一个错误:

OLE DB provider "MSDASQL" for linked server "(null)" returned message "[Microsoft][ODBC Driver Manager] Data source name not found and no default driver specified".
Msg 7303, Level 16, State 1, Line 1
Cannot initialize the data source object of OLE DB provider "MSDASQL" for linked server "(null)".
Msg 7403, Level 16, State 1, Line 1
The OLE DB provider "VFPOLEDB" has not been registered.
我试图用regsvr32手动注册OLE*.dll文件,但只有部分文件有效。在ole32、oleacc、oleaut32和oleprn上,我收到了一条成功消息。在oleacchooks、oleaccrc、oledlg和oleres上,我得到了以下错误:

The module "oleacchooks" was loaded but the
entry-point DllRegisterServer was not found.

Make sure that "oleacchooks" is a valid DLL or OCX file
and then try again
An error occurred while processing the last operation.
Error code 80110408 - Error occurred reading the application file

The event log may contain additional troubleshooting information.
在我尝试安装componet之后,但是当我尝试安装FoxPro()的msi文件时,我遇到了以下错误:

The module "oleacchooks" was loaded but the
entry-point DllRegisterServer was not found.

Make sure that "oleacchooks" is a valid DLL or OCX file
and then try again
An error occurred while processing the last operation.
Error code 80110408 - Error occurred reading the application file

The event log may contain additional troubleshooting information.

所以,我在这里正式迷路了。是否有人对如何使openrowset工作或导入dbf文件的其他方法有建议?

尝试使用VFPOLEDB.1作为提供程序。您可能遇到驱动程序版本问题。

Pat,您可以使用DBF Commander Pro执行此任务

,安装,然后单击文件->导出到DBMS。在出现的窗口中,单击“构建”按钮以构建连接字符串:选择MS OLEDB Provider for SQL Server,然后从列表中选择您的服务器,提供登录名和密码,选择数据库,单击“确定”:

在“导出到DBMS”窗口中,选择要将源DBF文件导入到的目标表,然后单击“导出”

有关将DBF导入和导出到您可以找到的数据库的更多信息


另外,该应用程序已功能齐全免费试用20天。

不幸的是,同样的错误。Msg 7403,第16级,状态1,第1行OLE DB提供程序“VFPOLEDB.1”尚未注册。@Pat,您可能必须从Microsoft下载VFP OleDB提供程序,然后继续…@DRapp谢谢,但我已经注册了。我还卸载/重新安装了几次。这就是我从中获得ole*.dll文件的地方。在这里找到的:这似乎已经做到了。非常感谢。我已经为此挣扎了几天了。我要和我的老板谈谈购买许可证的事。