2016-10-25 9 views

ответ

1

В VFP6, что вам нужно сделать это в цикле, как Алан Б. показал уже.

Однако вы можете использовать стиль, который вы пытались даже с VFP5 или VFP3, если вы используете VFP9-двигатель через VFPOLEDB. Иногда это очень полезно, что позволяет выполнять 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() 
2

Вы можете» t сделать это в одной команде в VFP 6, потому что движок SQL в этой версии не поддерживает 'UPDATE FROM'. Поэтому вам нужно написать код.

Предполагая, что «идентификатор» уникален в обеих таблицах:

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