【问题标题】:Trying to Import FoxPro DBF File to SQL Server尝试将 FoxPro DBF 文件导入 SQL Server
【发布时间】:2013-11-12 17:07:05
【问题描述】:

正如标题所说,我正在尝试使用 openrowset 将 FoxPro dbf 文件导入 sql server。起初,我尝试将 DBF 导出到 xls 文件并使用导入/导出向导导入。这通常工作得很好,但是有一个字段有时包含一个非常长的字符串,并且在从 dbf 导出到 xls 期间,该字符串被截断为 4096 个字符。

我找到了一个old post,其中包含有关如何使用 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)".

当我尝试第二个答案时:

select *
from openrowset('VFPOLEDB',
'\\Path\';'';'',
'select * from TABLE.DBF')

我得到错误:

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

someinvestigation 之后我尝试安装组件,但是当我尝试为 FoxPro (found here) 安装 msi 文件时,我收到此错误:

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 文件的方法有建议吗?

【问题讨论】:

    标签: sql-server foxpro dbf openrowset


    【解决方案1】:

    Pat,您可以使用 DBF Commander Pro 来完成这项任务。

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

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

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

    附:该应用具有功能齐全的 20 天免费试用期。

    【讨论】:

    • 这似乎已经做到了。万分感谢。我已经为此苦苦挣扎了几天。我会和我的老板谈谈购买许可证的事情。
    【解决方案2】:

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

    【讨论】:

    • 不幸的是同样的错误。消息 7403,级别 16,状态 1,第 1 行 OLE DB 提供程序“VFPOLEDB.1”尚未注册。
    • @Pat,您可能必须从 Microsoft 下载 VFP OleDB 提供程序,然后使用它...
    • @DRapp 谢谢,但我已经这样做了。我也卸载/重新安装了几次。那就是我从中获取 ole*.dll 文件的地方。在这里找到它:msdn.microsoft.com/en-US/vfoxpro/bb190232
    猜你喜欢
    • 2010-10-27
    • 2018-06-18
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-03-13
    相关资源
    最近更新 更多