当前位置: 代码迷 >> PB >> 怎样实现不同窗口中的两个表与此同时更新
  详细解决方案

怎样实现不同窗口中的两个表与此同时更新

热度:53   发布时间:2016-04-29 05:45:19.0
怎样实现不同窗口中的两个表同时更新。
我建了两个表,其中有3个字段列是相同。创建的数据窗口只与一个表关联,我更新数据窗口的时候,就只能更新一个表。怎样让另一个表的相同字段也更新啊?

在Pb编程中,存在触发器之说吗?
------解决方案--------------------
需要在后台写触发器来实现,不是在PB中写
------解决方案--------------------
用2个DW,分部取2个表中的要更新的数据,DW_1,DW_2,如DW_1修改了你说的3个字段后,在保存时,
获取dw_1中对应3个字段的值,更新dw_2表中的对应的3个字段赋值并保存。2个dw的更新用一个事务提交。
------解决方案--------------------

引用:
Quote: 引用:

用2个DW,分部取2个表中的要更新的数据,DW_1,DW_2,如DW_1修改了你说的3个字段后,在保存时,
获取dw_1中对应3个字段的值,更新dw_2表中的对应的3个字段赋值并保存。2个dw的更新用一个事务提交。

我创建的两个数据窗口,分别在不同的窗口中。“获取dw_1中对应3个字段的值,更新dw_2表中的对应的3个字段赋值并保存。2个dw的更新用一个事务提交。”具体的代码应该怎样写啊,我做了好几次,功能没实现啊



大概就是下边这个意思。
string ls_col1,ls_col2,ls_col3
if dw_1.update(true,true) = 1 then 
   ls_col1 = dw_1.object.col1[row1]  //row1 = 你要获取那行
   ls_col3 = dw_1.object.col2[row1]  //row1 = 你要获取那行
   ls_col3 = dw_1.object.col3[row1]  //row1 = 你要获取那行
   dw_2.object.col1[row2] = ls_col1  //row2 = 你要更新另外一个表的记录的行
   dw_2.object.col2[row2] = ls_col2  //row2 = 你要更新另外一个表的记录的行
   dw_2.object.col3[row2] = ls_col3  //row2 = 你要更新另外一个表的记录的行
   if dw_2.update(true,true) = 1 then 
       commit using sqlca;
   else
       roallback using sqlca;
   end if 
end if 

------解决方案--------------------
oracle 的话两个表主键关联建视图,操作视图就行;PB自带的SQL Anywhere木有试过。。