从Java访问Visual FoxPro数据库
我一直试图从Java访问Visual Fox Pro数据库一周。 我变得绝望,因为我的项目预算和时间框架非常紧密。 (正如任何其他项目,我猜,哈哈哈)
我有.dbf
, .cdx
和.fpt
文件。 我需要能够查找记录,提取数据和更新数据。 我没有VFP许可证。
我希望有人可以使用一些指针或工作示例。 如果唯一的方法是购买一个司机我会愿意根据收到的建议考虑它。
这是我尝试过的简短描述。
我发现这个xBaseJ:java对象可以读取和写入dBase文件 。 但它并没有支持CDX索引文件。
还发现此示例访问dbf 。 但是我的测试显示了这个exception: java.sql.SQLException: [Microsoft][Controlador ODBC dBase] La tabla externa no tiene el formato esperado.
我想这个错误的英文翻译可能是这样的: java.sql.SQLException: [Microsoft][ODBC dBase Driver] External table is not in the expected format
由于这个错误,我认为我需要一个更新的驱动程序。 在这个微软页面中说他们不再拥有ODBC驱动程序,并且每个人都应该使用OLE DB Provider。 问题是我还没有找到一种从java中使用它的方法。
据我所知, 没有办法直接做到。 在这里发现有人在谈论JACOB“thingy”,有人评论需要创建一个C ++或C#“某事”才能做我需要的东西。 我想他正在谈论JACOB项目:一个JAva-COM桥 。 但我也不知道COM实际上要做什么。
一直未能找到合适的JDBC驱动程序。
谢谢你们。
伊利。
我找到了办法。
我最终使用了JACOB( 从这里开始 )。
- 从http://msdn.microsoft.com/en-US/vfoxpro/bb190232下载并安装Visual FoxPro OLE DB驱动程序。 直接链接是: 用于Visual FoxPro 9.0 SP2的Microsoft OLE DB提供程序
- 下载了JACOB版本1.17二进制文件和源代码。
- 添加了
jacob.jar
作为Java Build Path库 - 将
jacob-1.17-x86.dll
复制到项目目录(与eclipse的.project文件相同的位置) - 将
jacob-1.17_src\jacob-1.17\samples\com\jacob\samples\ado
内容复制到我的src目录中,然后:- 删除了
ms
目录 - 将
test.java
重test.java
为Main.java
- 将连接字符串更改为:
String connectStr = "Provider=vfpoledb;Data Source=C:\\path\\to\\Data\\;Collating Sequence=general;";
- 更改了queryStr以匹配dbf的名称之一
- 删除了
希望这有助于其他人。
你可能会觉得有趣的是为foxpro文件使用jdbc驱动程序。 我用这个进行了一些快速测试,看起来你在Java中使用真正的数据库。
问候,