簡體   English   中英

使用php / Java閱讀foxpro DB

[英]Read foxpro DB using php/Java

我正在尋找一個代碼片段/庫,通過網絡使用來自Linux服務器的php / Java從第三方foxpro數據庫中讀取數據。 有沒有圖書館? 有些人似乎正在使用Dbase庫進行php? 那樣有用嗎?

除了默認值(數據庫名,用戶名,密碼)之外,我還需要Foxpro DB中的哪些參數。 DBF名稱,連接字符串??

不久前,我正在研究相同的解決方案,並打了很多死胡同。 我想要一個與PHP一起工作的解決方案。
我試過的其中一些是
1. Xbase驅動程序 :它們適用於簡單的DBF,但是它們不支持像DateTime字段這樣的新數據類型,因此排除了該選項。
2. VFP ODBC驅動程序 :如果您正在使用較舊的VFP版本,這很有效,因為此版本的開發已經停止,並且它不支持較新的自動增量字段,並且您不斷遇到奇怪的錯誤,例如“不是表”,這會導致您完成瘋。 “VFP ODBC驅動程序不支持具有自動增量字段的表”
3. 商業工具 :還有許多其他商業選擇顯然不適合我
4. 免費工具(DBF到CSV) ,它將DBF轉換為csv或類似的,但如果你只做select,這將有效。 你不能做任何更新。

最后一個對我有用的選項是: Visual Foxpro OLE Driver。

您可以從這里安裝OLE驅動程序。 示例代碼看起來像

$conn = new COM("ADODB.Connection");
$conn->Open('Provider=VFPOLEDB.1;Data Source="C:\\testDB.dbc";'); 

$query = "SELECT * FROM TABLE1 ";
$rs = $conn->Execute($query) or die("Error in query: $query. " . $conn->ErrorMsg());
while (!$rs->EOF) {
    echo " Got COL1: " . $rs->Fields("COL1") . " :: COL2: " . $rs->Fields("COL2") . " id: " . $rs->Fields("ID") . "\n";
    $rs->MoveNext();
}

$query = "UPDATE TABLE1 set COL1 = \"AA\", COL2 = \"Updated value\" ";
$conn->Execute($query);

我沒有找到任何關於php的文檔,但你可以參考MSDN ADO API並使用類似的API,特別是如果你想做基於事務的操作。

$conn->BeginTrans();
..
..
$conn->CommitTrans();
or 
$conn->RollbackTrans();

XBaseJ可能就是你想要的。 它是開源的,而且非常好 - 我在幾個應用程序中使用它,客戶仍然使用15年前的FoxPro應用程序。

您可能想告訴我們創建數據的FoxPro版本。 FoxPro for DOS表與Visual FoxPro表不同,如果它們包含在數據庫容器(DBC)中。

可以使用DBase工具訪問DOS表,因為它們具有一些兼容性。

以下是訪問Visual FoxPro數據示例的鏈接。 它也適用於FoxPro for DOS數據。

http://social.msdn.microsoft.com/Forums/en/visualfoxprogeneral/thread/821a3cb7-2f25-4cc9-b3a6-ec4551013d2a

里克舒默

我發現最好的方法是將MSSQL服務器設置為Foxpro數據庫中的鏈接服務器。 MSSQL與foxpro在同一台機器上。 查詢轉到MSSQL服務器。 我使用免費的。 我可能遇到了同樣的問題......通過網絡獲取當前的Foxpro數據。

請參閱以下類似問題的答案: https//stackoverflow.com/a/21945208/1456887

基本上:

  • FoxPRO OLE DB驅動程序
  • JACOB版本1.17或更高版本
  • 修復連接字符串。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM