[英]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數據。
里克舒默
我發現最好的方法是將MSSQL服務器設置為Foxpro數據庫中的鏈接服務器。 MSSQL與foxpro在同一台機器上。 查詢轉到MSSQL服務器。 我使用免費的。 我可能遇到了同樣的問題......通過網絡獲取當前的Foxpro數據。
請參閱以下類似問題的答案: https : //stackoverflow.com/a/21945208/1456887
基本上:
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.