在foxpro中运行更新查询时出现此错误

时间:2014-03-04 13:56:23

标签: foxpro

运行以下代码进行更新时

$conn = new COM("ADODB.Connection");

$conn->Open('Provider=VFPOLEDB.1;
Data Source="C:\Users\TEMP.HIDEAZSERVER\Desktop\databaseetc\testdata";');

$query = "UPDATE sitedetl set NAME = \"AA\", CUST_CODE = \"Updated value\" "; 

$conn->Execute($query);

$query = "SELECT * FROM sitedetl WHERE UNIQUEID = '00000000190'";

$rs = $conn->Execute($query) or die("Error in query: $query. " . $conn->ErrorMsg());

while (!$rs->EOF) {

    echo " Got NAME: " . $rs->Fields("NAME") . " :: CUST_CODE: " . $rs->Fields
    ("CUST_CODE");

     $rs->MoveNext();
}

选择查询正在运行,但更新查询未运行....

我在更新查询执行时遇到此错误:

Fatal error: Uncaught exception 'com_exception' with message '
Source: Microsoft OLE DB Provider for Visual FoxPro
Description: File 'ws_ri.prg' does not exist.' in D:\xampp\htdocs\websims\test_config.php:7
Stack trace:
#0 D:\xampp\htdocs\websims\test_config.php(7): com->Execute('UPDATE sitedetl...')
#1 {main} thrown in D:\xampp\htdocs\websims\test_config.php on line 7

1 个答案:

答案 0 :(得分:3)

已配置FoxPro DBC,以便 sitedetl 表在UPDATE上添加关系完整性触发器,在本例中为“ws_ri.prg”

可能最初创建数据库的程序包含ws_ri的定义,并且因为您没有通过所述可执行文件,所以您会遇到错误。 (这就是为什么正确分离关注点是个好主意的原因,孩子们!)

要解决问题,您应该只需将ws_ri.prg文件添加到C:\ Users \ TEMP.HIDEAZSERVER \ Desktop \ databaseetc \ testdata。

您可能还想尝试连接到DBC本身,而不是文件夹。