gpt4 book ai didi

java - 将 xbasej 与 NTX 索引一起使用

转载 作者:行者123 更新时间:2023-12-04 05:33:59 24 4
gpt4 key购买 nike

我正在尝试将 Java 中的 DBF 文件用于与大型旧系统交互的较新实用程序。我可以使用 Java ODBC 桥访问、读取、写入和更新,但这不会更新 NTX 索引。我发现 xbasej 声称能够使用索引,但似乎只能使用 NDX 索引。我总是可以在使用它们之前创建它们,但是它仍然不会更新所有其他程序使用的 NTX 。有数千个程序在这里交互,因此无法切换到 NDX,而且我没有预算。

所以我的问题是:有没有办法让 xbasej 使用 NTX 索引,或者如果我在编辑数据库之前打开它们,是否有任何其他免费的 Java 库可以自动更新 NTX 文件?

哦,我已经转发了端口 6262,甚至在完全关闭防火墙的情况下进行了测试。

任何帮助将不胜感激。

我找到了 Sybase Advantage 驱动程序 link显然可以打开 DBF 和 NTX 文件,我可以使用他们的 Data Architect 程序创建一个数据字典来访问我的数据,但我无法弄清楚如何从 Java 中使用它,所有示例似乎都需要某种服务器连接。这样的事情应该工作:

try {
Class.forName("com.extendedsystems.jdbc.advantage.ADSDriver");
} catch (ClassNotFoundException ex) {
Logger.getLogger(DBFTest.class.getName()).log(Level.SEVERE, null, ex);
}

try {
ADSConnection conn = (ADSConnection) DriverManager.getConnection("jdbc:extendedsystems:advantage://localhost:6262;catalog=//llama-rog/c/stock/DD.add;user=master;password=master");
}catch (SQLException ex) {
Logger.getLogger(DBFTest.class.getName()).log(Level.SEVERE, null, ex);
}
}

每次我尝试连接时,我都会得到:
com.extendedsystems.jdbc.advantage.ADSException: [iAnywhere Solutions][Advantage JDBC]Connection refused: connect
at com.extendedsystems.jdbc.advantage.n.<init>(Unknown Source)
at com.extendedsystems.jdbc.advantage.ADSConnection.<init>(Unknown Source)
at com.extendedsystems.jdbc.advantage.ADSDriver.connect(Unknown Source)
at java.sql.DriverManager.getConnection(DriverManager.java:579)
at java.sql.DriverManager.getConnection(DriverManager.java:243)
at dbftest.DBFTest.main(DBFTest.java:30)

我已经搜索了几个小时,对于连接到本地唯一数据字典 (.add) 的任何示例代码都完全干了,其中列出了我的 DBF 和相关索引。有人提到使用数据架构师在 ADS.ini 中创建的别名,但同样没有关于如何执行此操作的痕迹。 Jar 文件没有附带 javadoc,只有一些我浏览过的 HTML 帮助文件,但一无所获。

有一个测试应用程序可以让你测试连接,但仍然需要我输入我的连接字符串、用户名和密码,而且无论是通过数据字典还是免费表,我都无法连接到任何东西,我总是得到同样的错误。

有谁知道如何让这个工作。它通过他们的数据架构师工具工作的事实证明它应该以某种方式工作,但我不知道我如何复制该功能。

最佳答案

Advantage JDBC 驱动程序需要 Advantage Database Server,它是该产品的客户端-服务器版本。根据评论“没有预算”,我猜您还没有购买服务器。如果是这种情况,那么 JDBC 驱动程序对您没有任何用处。 Connection refused 似乎很可能发生错误是因为没有服务器接受连接。

如果您能够使用 ODBC 桥接器,那么一种可能是使用 Advantage ODBC 驱动程序,该驱动程序可以连接到 Advantage Local Server(非客户端服务器版本,根据您的使用情况免费......阅读许可证)。您应该能够安装 Advantage ODBC 驱动程序,设置指定数据字典的数据源(使用与 Advantage Data Architect 相同的路径)。

您可能已经这样做了,但是当您创建数据字典并添加表时,请确保为每个表添加了适当的 .ntx 文件。 Advantage 无法确定哪些索引属于哪个表。

关于java - 将 xbasej 与 NTX 索引一起使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12201655/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com