我正在寻找一个代码片段/库来使用来自 Linux 服务器的 php/Java 通过网络从第三方 foxpro DB 读取数据。有没有可用的图书馆?有些人似乎在为 php 使用 Dbase 库?那样有用吗?
除了默认值(数据库名、用户名、密码)之外,我还需要 Foxpro DB 中的哪些参数。DBF 名称,连接字符串 ??
不久前,我正在研究相同的解决方案并遇到了许多死胡同。我想要一个与 php 一起使用的解决方案。
我尝试过的其中一些是
1. Xbase 驱动程序:它们适用于简单的 DBF,但是它们不支持较新的数据类型,如 DateTime 字段,因此排除了该选项。
2. VFP ODBC 驱动程序:如果您正在使用较旧的 VFP 版本,这很好用,因为该版本的开发已停止并且它不支持较新的自动增量字段,并且您不断收到奇怪的错误,例如“不是表格”,它会驱动您完成疯狂的。“VFP ODBC Driver 不支持具有自动增量字段的表”
3.商业工具:还有许多其他商业选项显然对我不起作用
4.将 DBF 转换为 csv 或类似文件的免费工具(DBF 到 CSV),但如果您只做选择,这将起作用。你不能做任何更新。
最后一个对我有用的选项是: 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("查询错误:$query。" . $conn->ErrorMsg()); 而 (!$rs->EOF) { 回声“得到 COL1:”。$rs->Fields("COL1") 。" :: COL2: " 。$rs->Fields("COL2") 。“ ID: ” 。$rs->Fields("ID") 。"\n"; $rs->MoveNext(); } $query = "UPDATE TABLE1 设置 COL1 = \"AA\", COL2 = \"更新值\" "; $conn->执行($query);
我没有找到任何关于 php 的文档,但您可以参考 MSDN ADO API 并使用类似的 API,特别是如果您想做基于事务的操作。
$conn->BeginTrans(); .. .. $conn->CommitTrans(); 或者 $conn->RollbackTrans();
XBaseJ可能是您正在寻找的。它是开源的,而且非常好——我在几个应用程序中使用它,客户仍然挂在他们 15 年前的 FoxPro 应用程序上。
我发现最好的方法是将 MSSQL 服务器设置为 Foxpro 数据库的链接服务器。MSSQL 与 foxpro 在同一台机器上。查询转到 MSSQL 服务器。我用的是免费的。我可能遇到了您正在处理的相同问题...通过网络获取当前的 Foxpro 数据。
您可能想告诉我们创建数据的 FoxPro 版本。如果它们包含在数据库容器 (DBC) 中,则 FoxPro for DOS 表不同于 Visual FoxPro 表。
DOS 表可以使用 DBase 工具访问,因为它们确实具有一定的兼容性。
这是访问 Visual FoxPro 数据的示例的链接。它还应该与 FoxPro 一起用于 DOS 数据。
里克·舒默
请参阅类似问题的答案: https ://stackoverflow.com/a/21945208/1456887
基本上: