我正在寻找一个代码片段/库,通过网络使用来自Linux服务器的php / Java从第三方foxpro数据库中读取数据。 有没有图书馆? 有些人似乎正在使用Dbase库进行php?这有用吗?
除了默认值(数据库名,用户名,密码)之外,Foxpro DB需要哪些参数。 DBF名称,连接字符串??
答案 0 :(得分:5)
前段时间,我正在研究相同的解决方案并且遇到了许多死胡同。我想要一个与php一起工作的解决方案
其中一些我试过的是
1. Xbase驱动程序:它们适用于简单的DBF,但是它们不支持更新的数据类型,如DateTime字段,因此该选项被排除在外。
2. VFP ODBC驱动程序:如果您正在使用较旧的VFP版本,这很有效,因为此版本的开发已经停止,并且它不支持较新的自动增量字段
并且你不断得到像“不是一张桌子”这样让你完全疯狂的奇怪错误。
“VFP ODBC驱动程序不支持具有自动增量字段的表”
3. 商业工具:还有很多其他商业选择显然不适合我
4. 免费工具(DBF到CSV),它将DBF转换为csv或类似的,但如果你只做select,那么这将有效。你不能做任何更新。
最后一个对我有用的选择是: Visual Foxpro OLE驱动程序。
您可以从here安装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();
答案 1 :(得分:3)
XBaseJ可能就是你要找的东西。它是开源的,而且非常好 - 我在几个应用程序中使用它,客户仍然使用15年前的FoxPro应用程序。
答案 2 :(得分:1)
您可能想告诉我们创建数据的FoxPro版本。 FoxPro for DOS表与Visual FoxPro表不同,如果它们包含在数据库容器(DBC)中。
可以使用DBase工具访问DOS表,因为它们具有一定的兼容性。
以下是访问Visual FoxPro数据示例的链接。它也适用于FoxPro for DOS数据。
Rick Schummer
答案 3 :(得分:1)
我发现最好的方法是将MSSQL服务器设置为Foxpro数据库中的链接服务器。 MSSQL与foxpro在同一台机器上。查询转到MSSQL服务器。我使用免费的。 我可能遇到了同样的问题......通过网络获取当前的Foxpro数据。
答案 4 :(得分:0)
查看类似问题的答案: https://stackoverflow.com/a/21945208/1456887
基本上: