一个数据窗口同时更新两个表的问题!(在设置更新属性的时候,总是不行)

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’的语句却没有起作用!
我现在好郁闷!请教大家。是不是我有什么地方设置的不对!!急!!




...全文
71 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
Key 2003-08-22
  • 打赏
  • 举报
回复
问题已经解决,拼写错误!!
Key 2003-08-22
  • 打赏
  • 举报
回复
出现的问题不是因为主键的问题,而是由于A的字段的更新属性没有变为 No ,第二次更新的时候,还是向数据库中写数据,当然就出现了在"B表中没有的字段的更新"类似这样的错误了!
唉,急死我了!
prain2003 2003-08-22
  • 打赏
  • 举报
回复
在做改变时,好像没有设定B表的主键key
我做两个表的更新,一般都是用两个数据窗口,来实现的。
写语句不如rowscopy
Key 2003-08-22
  • 打赏
  • 举报
回复
另外,还有一点我忘了写。
……
dw_1.modify("a_id.key = 'no')
……
dw_1.modify("b_id.key = 'yes')
…………
很急,这个问题困扰了我好几天了。
几本书都翻烂了,代码都和我写的这个差不多!!

不知道有什么地方我写的不对,希望 有人可以帮我,谢谢!!

分数不够,可以再开贴加分!谢谢了!

609

社区成员

发帖
与我相关
我的任务
社区描述
PowerBuilder DataWindow
社区管理员
  • DataWindow社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧