2014-02-18 87 views
4

我一直試圖從Java訪問Visual Fox Pro數據庫一週。我越來越絕望,因爲我的項目預算和時間非常緊密。 (作爲任何其他項目,我猜,哈哈哈)從Java訪問Visual FoxPro數據庫

我有一個.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提供程序。問題是我沒有找到從java中使用它的方法。據我所知,there is no way直接做。發現here有人在談論JACOB「thingy」,有人評論說需要創建一個C++或C#「東西」,以便能夠做到我需要的東西。我認爲他在談論The JACOB Project: A JAva-COM Bridge。但我也不知道COM調用實際需要做什麼。

一直未能找到合適的JDBC驅動程序。

謝謝大家。

伊利。

回答

8

我找到了辦法。

我結束了使用JACOB(from here)。

  1. http://msdn.microsoft.com/en-US/vfoxpro/bb190232下載並安裝Visual FoxPro OLE DB驅動程序。直接鏈接是:Microsoft OLE DB Provider for Visual FoxPro 9.0 SP2
  2. 下載JACOB版本1.17的二進制和源代碼。
  3. 添加jacob.jar作爲Java構建路徑庫
  4. 複製jacob-1.17-x86.dll到項目目錄(與eclipse相同的位置。項目文件)
  5. 複製jacob-1.17_src\jacob-1.17\samples\com\jacob\samples\ado內容到我的src目錄和:
    1. 刪除了ms目錄
    2. 更名爲test.javaMain.java
    3. 改變了連接字符串: String connectStr = "Provider=vfpoledb;Data Source=C:\\path\\to\\Data\\;Collating Sequence=general;";
    4. 改變了queryStr匹配一個的dbf名稱

希望這可以幫助別人。

+0

嗨,如何設法使用提供商?我收到提示信息,說找不到合適的驅動程序。 – Gilson

+0

我剛剛安裝了第1步中描述的驅動程序。沒有什麼特別的。 – elysch

+0

你正在運行哪個windows版本?我正在運行Windows 7 64位 – Gilson

0

您可能會對foxpro文件使用jdbc驅動程序感興趣。 我用this one做了一些快速測試,它幾乎看起來像你在Java中使用真正的數據庫。

Regards,

+0

很高興知道。當我有時間刺刀時,我會試一試。我一直在尋找類似的東西:) – elysch

+0

不幸的是,它不支持CDX索引文件。 – sax