一个数据窗口同时更新两个表的问题!(在设置更新属性的时候,总是不行)
Key 2003-08-22 09:21:16 现在,我建立了一个数据窗口,涉及到两个表,比如 A 表,和B表,两个表之间用一个外键连接,B表的主键是A表的外键!
在数据窗口更新的时候,由于我是建立一个新的记录,并且要对两个表都要写,因此,在数据窗口的更新属性中,我设置为更新A表。更新的字段为 a.id、a.name……,在更新成功的情况下,修改数据窗口的更新属性,变为B表更新,并修改相应的字段更新属性。
代码示意如下:
初始数据窗口更新属性为 A 表,更新字段为A表的所有字段。
……
long rtcode
rtcode = dw_1.update(true,false)
if rtcode = 1 then //更新第一个表成功
dw_1.modify("a_id.update = 'No'") //修改第一个表的字段更新属性为不更新
dw_1.modify("a_name.update = 'No'")
……
//修改第二个表的更新属性为可更新
dw_1.modify("datawindow.Table.updatetable = 'B'")
dw_1.modify("b_id.update = 'yes'")
dw_1.modify("b_name.update = 'yes')
……
if dw_1.update() = 1 then //更新第二个表成功
COMMIT;
else
messagebox("错误", "提交不成功")
end if
end if
现在的问题是,更新第一个表的时候,没有问题,更新的字段也对。但是在第二次更新的时候,更改为 更新B表,这个没有问题,而且,在程序中更改更新属性的B表字段也都更新正确,也就是说,语句中设置更新属性为 ‘No’ 的语句都起作用了。但是在更新的时候,A的字段却也要更新,向B表添加。出现了“非法的字段”这样的错误。为什么把更新属性设为‘No’的语句起作用了,可是把更新属性设为‘Yes’的语句却没有起作用!
我现在好郁闷!请教大家。是不是我有什么地方设置的不对!!急!!