php - 使用 php/Java 读取 foxpro DB

标签 php foxpro

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

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

最佳答案

不久前,我正在研究相同的解决方案,但遇到了许多死胡同。我想要一个与 php 一起使用的解决方案。
我试过的其中一些是
1. Xbase 驱动程序:它们适用于简单的 DBF,但它们不支持较新的数据类型,如 DateTime 字段,因此排除了该选项。
2. VFP ODBC 驱动程序 :如果您正在使用旧 VFP 版本,这很有效,因为该版本的开发已停止并且不支持较新的自动增量字段 而且你不断收到奇怪的错误,比如“不是一张 table ”,这让你完全发疯。 “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("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();

关于php - 使用 php/Java 读取 foxpro DB,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2238659/

相关文章:

python - Visual Fox Pro 和 Python

c# - 有人知道如何使用 C# 从 oledb 驱动程序中删除 pack foxpro 数据

sql - 为什么 SQL Join 会发现两个长度不同的字符串相等?

sql - IDS 对单用户应用程序来说是一种过度杀戮吗?

php - 找到相交线之间的所有四边形?

php - CakePHP - 只是布局?

php - 为什么此 Javascript 重定向代码在 Internet Explorer 8 中不起作用?

foxpro - Visual FoxPro - 文件访问被拒绝

php - ' "turns out as\' 和\"

php - composer update failed 您的要求无法解析为一组可安装的软件包