【发布时间】: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