一周以来,我一直在尝试从 Java 访问 Visual Fox Pro 数据库。我越来越绝望,因为我的项目预算和时间都非常有限。 (我猜和任何其他项目一样,哈哈哈)
我有一个.dbf
、一个.cdx
和一个.fpt
文件。我需要能够查找记录、提取数据和更新数据。我没有 VFP 许可证。
我希望有人能提供一些我可以使用的指示或工作示例。如果唯一的办法是购买驱动程序,我愿意根据收到的建议进行考虑。
这是对我尝试过的内容的简短描述。
我找到了这个 xBaseJ: java objects to read and write to dBase files .但它不支持 CDX 索引文件。
还发现了这个Example to access a dbf .但我的测试显示此异常: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
因为那个错误,我想我需要一个更新的驱动程序。在 this microsoft page说他们不再有 ODBC 驱动程序,每个人都应该使用 OLE DB Provider。问题是我还没有找到从 java 中使用它的方法。
据我所知,there is no way直接去做。找到here有人谈论 JACOB“东西”,有人评论说需要创建 C++ 或 C#“东西”才能完成我需要的事情。我认为他在谈论 The JACOB Project: A JAva-COM Bridge .但我也不知道实际上必须进行哪些 COM 调用。
未能找到合适的 JDBC 驱动程序。
谢谢大家
伊利。
最佳答案
我找到了方法。
我最终使用了 JACOB(from here <= upd 2021-10-25: now here)。
- 已从 http://msdn.microsoft.com/en-US/vfoxpro/bb190232 下载并安装 Visual FoxPro OLE DB 驱动程序(更新 2021-10-25:那里的链接不再有效)。直接链接是:Microsoft OLE DB Provider for Visual FoxPro 9.0 SP2 (2021-10-25 更新:不再有效)
- 下载 JACOB 1.17 版二进制文件和源代码。
- 将
jacob.jar
添加为 Java 构建路径库 - 将
jacob-1.17-x86.dll
复制到项目目录(与 eclipse 的 .project 文件相同的位置) - 将
jacob-1.17_src\jacob-1.17\samples\com\jacob\samples\ado
内容复制到我的 src 目录,并且: - 删除了
ms
目录 - 将
test.java
重命名为Main.java
- 将连接字符串更改为:
String connectStr = "Provider=vfpoledb;Data Source=C:\\path\\to\\Data\\;Collating Sequence=general;";
- 更改了 queryStr 以匹配 dbf 的名称之一
希望这对其他人有帮助。
关于java - 从 Java 访问 Visual FoxPro 数据库,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/21856285/