1

我有 DBF 格式的数据库,并使用 ODBC 访问数据库。当我在表上更新时,它返回错误:

警告:odbc_execute() [function.odbc-execute]:SQL 错误:[Microsoft][ODBC dBase Driver] Index not found., SQL 状态 S0012 in SQLExecute in C:\xampp\htdocs\payroll\index.php 第 16 行

根据错误消息,似乎找不到索引。那是什么指数?怎么修?下面是我用来进行查询的 PHP 脚本。

$odbc = odbc_connect ('payroll', '', '') or die('Error connecting to server. Server says: '.odbc_errormsg());

$upd_q = "UPDATE paytran SET empno = 22 WHERE empno = 888";
$update = odbc_prepare($odbc, $upd_q);
$result = odbc_execute($update);

odbc_close($odbc);

使用相同的方法插入新记录。插入查询成功,但对于 DELETE 和 UPDATE 查询无效。

4

1 回答 1

2

根据这个线程的最后一篇文章,

如果您现在有一个 .dbf 文件,通常它来自 FoxPro 应用程序。而且,由于您有一个 .cdx 文件,它会告诉您它是 FoxPro 复合索引文件,而 dBASE 不能使用它,当然也不能利用它来获得您希望在查询中获得的任何速度优势。

你有.cdx档案吗?如果是这样,您可能需要检查您拥有的版本,然后找到 FoxPro 驱动程序或 OLE DB 提供程序,并使用它而不是 ODBC。有关于如何在此处此处进行操作的信息;驱动程序和数据库提供程序在这里

于 2013-01-31T09:22:52.323 回答