知识大全 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相关参考
知识大全 PB中同时“继承”多个用户自定义数据窗口对象[2]
PB中同时“继承”多个用户自定义数据窗口对象[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&
PB中实现数据窗口动态排序的三种方法[2] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! str
知识大全 PB中同时“继承”多个用户自定义数据窗口对象[3]
PB中同时“继承”多个用户自定义数据窗口对象[3] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&
知识大全 PB中同时“继承”多个用户自定义数据窗口对象[1]
PB中同时“继承”多个用户自定义数据窗口对象[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!&
利用PB动态创建数据窗口 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 利用PowerBuild
在业务处理过程中经常会碰到将业务数据按照条件分别插入不同的数据表的问题按照传统的处理方式需要分条件执行多次检索后分别插入不同的表单这样因为执行了重复的检索造成cpu和内存的浪费从oraclei开始
PB数据窗口中用Enter键替代Tab键切换栏目 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!
PB在数据窗口中实现某一列的增量查询功能 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在PB的
PB中实现数据窗口动态排序的三种方法[1] 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 在Po
ASP.NET中使用表别名的多表查询 以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧! 一程序功能将