从另一个 table vfp6 更新

update from another table vfp6

我正在尝试在 VPF6 中执行此操作:

Update Table1 From table2 Where table1.id = table2.id ;
Set table1.name = table2.name

我只从@EdPecyna 找到了 VFP9 的解决方案:visual foxpro - need to update table from another table

非常感谢

您不能在 VFP 6 中用一条命令完成,因为该版本的 SQL 引擎不支持 'UPDATE FROM'。所以你必须写一些代码。

假设 'id' 在两个表中都是唯一的:

select table2
scan
    update table1 where table1.id = table2.id set table1.name = table2.name
endscan

在 VFP6 中,您需要像 Alan B. 展示的那样循环执行。

但是,如果您通过 VFPOLEDB 使用 VFP9 引擎,则即使在 VFP5 或 VFP3 中也可以使用您尝试过的样式。这有时非常有用,允许您执行旧版本中不可用的 SQL。即:

Local cn
cn = createobject('adodb.connection')
cn.ConnectionString = 'Provider=VFPOLEDB;Data Source=c:\MyDataFolder\'
cn.Open()
cn.Execute('set exclusive off')
cn.Execute('Update table1 set name=table2.name from table2 where table1.Id=table2.id')
cn.Close()