【问题标题】:How to read a VFP .dbf file如何读取 VFP .dbf 文件
【发布时间】:2011-12-03 12:42:55
【问题描述】:

我必须在 SQL 中读取来自 VFP 服务器的两个 .dbf 文件并对其进行操作。他们坐在服务器上的一个文件夹中。首先,我安装了 VFPOLEDB 驱动程序、ODBC 驱动程序及其更新。我已经成功地为空闲表创建了一个链接服务器,并在 SQL 中对其进行了测试,它说连接很好并且那里有东西。我似乎仍然无法查看文件。有人看到我的代码有什么问题吗?或者有什么诀窍?已知工作代码的示例代码?我在网上找到了很多例子,但是当我花很多时间修改它们时,它们仍然不起作用。

这是我的代码:

Select * From OPENQUERY(LINKEDSVR, 'Select * from employee.dbf') 

LINKEDSVR 参数信息:

提供程序:用于 ODBC 驱动程序的 Microsoft OLE DB 提供程序
产品名称:Microsoft Visual FoxPro 驱动程序
数据来源:linkedfoxpro

ODBClinkedfoxpro 配置:

数据源名称:linkedfoxpro
数据库类型:免费表目录
路径:c:\somefolder

驱动程序:Microsoft FoxPro VFP 驱动程序 (*.dbf)

谢谢!

【问题讨论】:

  • 哦,我在执行这个查询时得到的错误:这是有道理的,但是 dbf 文件在同一个文件夹中也有来自其 foxpro 服务器的所有“构造函数表和索引”:OLE链接服务器“LINKEDSVR”的数据库提供程序“MSDASQL”返回消息“[Microsoft][ODBC Visual FoxPro Driver]Index 与表不匹配。删除索引文件并重新创建索引。”。消息 7350,级别 16,状态 2,第 2 行无法从链接服务器“LINKEDSVR”的 OLE DB 提供程序“MSDASQL”获取列信息。
  • 对于那些也被这个问题困扰的人,经过几个小时后,我随机想到了一个由于某种原因有效的修复方法。 . .我删除了 SQL 从 FoxPro 文件生成的 .CDX 文件。然后我重新打开 SQL,它开始使用上面发布的相同代码!....问题解决了!如果有人可以向我解释为什么会这样,请这样做! * 注意:这些 FoxPro 文件永远不会更改数据/索引。

标签: sql sql-server database foxpro


【解决方案1】:

那些 CDX 文件不是由 SQL 生成的 - 这是由 VFP 创建/使用的索引文件。它们很容易损坏,因此 CDX 在您拿到它或在运输过程中很可能已经损坏。

通过删除 CDX 文件,您已从表中删除了所有索引以及错误源。

【讨论】:

    猜你喜欢
    • 2022-12-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多