知识大全 PB中数据窗口的多表更新[2]
Posted 知
篇首语:人生就像爬坡,要一步一步来。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 PB中数据窗口的多表更新[2]相关的知识,希望对你有一定的参考价值。
PB中数据窗口的多表更新[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
二 函数思路
先针对第一个数据库表调用Update函数更新 注意参数的使用 第一个参数作用是控制数据窗口更新前是否强制性调用AcceptText() 在数据窗口更新前通过有效性验证 第二个参数是控制更新标志的复位 为True时更新标志复位 为False时更新标志不复位
更改数据窗口的UpdateTable属性 使其指向第二个表 并把第一个表的各数据项Update属性和主键列的Key属性改为No 接着把第二个表的各数据项Update属性和主键列的Key属性改为Yes
调用Update函数更新第二个表
两表更新成功后 把两表的列属性 主键属性改回到初始状态 以便为下一次的两表更新调用做好准备
三 程序清单
// ColName:数据窗口列名
// Name [] Name []:两数据库表选中项列名
// n n :两数据库表选中项数量
// i:循环计数器
// Columns:数据窗口总列数
String ColName Name [] Name []
Integer Columns i n = n =
//下面程序 找出dw―obj的两表列名赋给Name [] Name []
Columns=Integer(dw―obj Describe(″DataWindow Column Count″))
FOR i= TO columns
ColName=Upper(dw―obj Describe(″#″+String(i)+″ Name″))
IF Left(ColName Len(Table ))=Table and ColName〈〉Key THEN
n =n +
Name [n ]=ColName
END IF
IF Left(ColName Len(Table ))=Table and ColName〈〉Key THEN
n =n +
Name [n ]=ColName
END IF
NEXT
// 下面程序 存储dw―obj 确定返回值(True:成功 False:失败)
IF dw_obj Update(True False)= THEN
FOR i= TO n
dw―obj Modify(Name [i ]+″ Update=No″)
NEXT
dw―obj Modify(Key +″ Key=No″)
dw―obj Modify(″DataWindow Table Update
Table=′ ″+Table +″ ′ ″)
FOR i= TO n
dw―obj Modify(Name [i ]+″ Update=Yes″)
NEXT
dw―obj Modify(Key +″ Key=Yes″)
IF dw―obj Update()= THEN
Commit;
FOR i= TO n
dw―obj Modify(Name [i ]+″ Update=Yes″)
NEXT
dw―obj Modify(Key +″ Key=Yes″)
dw―obj Modify(″DataWindow Table UpdateTable=′ ″+Table +″ ′ ″)
FOR i= TO n
dw―obj Modify(Name [i ]+″ Update=No″)
NEXT
dw―obj Modify(Key +″ Key=No″)
return True
ELSE
Rollback;
return False
END IF
ELSE
Rollback;
return False
END IF
四 调用方法
假设窗口名为w―update 数据窗口为dw― 数据库表名和主键名分别为t t k k 放置 存盘 按钮 按钮Clicked事件的Script
语句如下
dw_ AcceptText()
IF dw― ModifiedCount()〉 or dw_ DeletedCount()〉 THEN
IF MessageBox(″提示信息″ ″是否存盘?″ Question! YesNo!)= THEN
IF f―update― table(dw― ″t ″ ″t ″ ″k ″ ″k ″) THEN
Commit;
ELSE
Rollback;
END IF
END IF
END IF
综上所述 可以看出 该方案具有很好的可扩展性 稍加修改即可解决多表作为数据源的数据窗口的同步更新问题
编辑推荐
J EE高级框架实战培训视频教程
数据仓库与数据挖掘培训视频教程
cha138/Article/program/PB/201311/24631相关参考