3

我正在寻找一个代码片段/库来使用来自 Linux 服务器的 php/Java 通过网络从第三方 foxpro DB 读取数据。有没有可用的图书馆?有些人似乎在为 php 使用 Dbase 库?那样有用吗?

除了默认值(数据库名、用户名、密码)之外,我还需要 Foxpro DB 中的哪些参数。DBF 名称,连接字符串 ??

4

5 回答 5

5

不久前,我正在研究相同的解决方案并遇到了许多死胡同。我想要一个与 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();
于 2010-06-26T14:11:45.040 回答
3

XBaseJ可能是您正在寻找的。它是开源的,而且非常好——我在几个应用程序中使用它,客户仍然挂在他们 15 年前的 FoxPro 应用程序上。

于 2010-06-26T08:49:58.403 回答
1

我发现最好的方法是将 MSSQL 服务器设置为 Foxpro 数据库的链接服务器。MSSQL 与 foxpro 在同一台机器上。查询转到 MSSQL 服务器。我用的是免费的。我可能遇到了您正在处理的相同问题...通过网络获取当前的 Foxpro 数据。

于 2010-03-30T19:03:24.067 回答
1

您可能想告诉我们创建数据的 FoxPro 版本。如果它们包含在数据库容器 (DBC) 中,则 FoxPro for DOS 表不同于 Visual FoxPro 表。

DOS 表可以使用 DBase 工具访问,因为它们确实具有一定的兼容性。

这是访问 Visual FoxPro 数据的示例的链接。它还应该与 FoxPro 一起用于 DOS 数据。

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

里克·舒默

于 2010-02-10T17:16:47.013 回答
-1

请参阅类似问题的答案: https ://stackoverflow.com/a/21945208/1456887

基本上:

  • FoxPRO OLE DB 驱动程序
  • JACOB 1.17 版或更高版本
  • 修复连接字符串。
于 2016-01-20T03:38:11.437 回答