【问题标题】:Read foxpro DB using php/Java使用 php/Java 读取 foxpro DB
【发布时间】:2016-01-20 11:38:11
【问题描述】:

我正在寻找一个代码 sn-p/library,以使用 Linux 服务器上的 php/Java 通过网络从第三方 foxpro DB 读取数据。 有没有可用的图书馆? 有些人似乎在为 php 使用 Dbase 库?这行得通吗?

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

【问题讨论】:

  • FoxPro 的某个地方可能有 JDBC 驱动程序。
  • 我在谷歌上搜索并找到了许多 Type 4 JDBC 驱动程序,但没有一个是免费的...我还从 google 找到了 dbf2java-library,但它没有任何 wiki 或任何文档...

标签: php foxpro


【解决方案1】:

不久前,我正在研究相同的解决方案,但遇到了许多死胡同。我想要一个与 php 一起使用的解决方案。
我尝试过的其中一些是
1. Xbase 驱动程序:它们适用于简单的 DBF,但它们不支持较新的数据类型,如 DateTime 字段,因此排除了该选项。
2. VFP ODBC 驱动程序 :如果您使用的是旧 VFP 版本,这很有效,因为该版本的开发已停止并且它不支持较新的自动增量字段 而且你不断收到奇怪的错误,比如“不是一张桌子”,这让你完全发疯。 “VFP ODBC 驱动程序不支持具有自动增量字段的表”
3. 商业工具:还有许多其他商业选项显然不适合我
4. 免费工具(DBF 到 CSV) 将 DBF 转换为 csv 或类似文件,但如果您只做选择,这将起作用。您无法进行任何更新。

最后对我有用的选项是: 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("查询错误:$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();

【讨论】:

  • VFP ODBC 驱动程序基于 VFP 6 引擎(显然去掉了一些东西)。版本 6 之后出现了自动增量字段,这就是您遇到问题的原因。
【解决方案2】:

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

【讨论】:

    【解决方案3】:

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

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

    这里是访问 Visual FoxPro 数据示例的链接。它也应该适用于 FoxPro 的 DOS 数据。

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

    瑞克·舒默

    【讨论】:

    【解决方案4】:

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

    【讨论】:

      【解决方案5】:

      查看类似问题的答案: https://stackoverflow.com/a/21945208/1456887

      基本上:

      • FoxPRO OLE DB 驱动程序
      • JACOB 1.17 版或更高版本
      • 修复连接字符串。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2011-06-16
        • 1970-01-01
        • 2013-05-05
        • 2011-06-21
        • 2014-07-31
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多