社区
PowerBuilder
帖子详情
数据窗口的多表更新.....
moyan1203
2006-04-15 01:53:54
谁给帮忙详细讲述一下数据窗口的多表更新该怎么实现?谢谢
...全文
140
1
打赏
收藏
数据窗口的多表更新.....
谁给帮忙详细讲述一下数据窗口的多表更新该怎么实现?谢谢
复制链接
扫一扫
分享
转发到动态
举报
写回复
配置赞助广告
用AI写文章
1 条
回复
切换为时间正序
请发表友善的回复…
发表回复
打赏红包
edp08
2006-04-15
打赏
举报
回复
数据窗口数据源来自两个或两个以上的表,相当于多个表连接建立的一个视图,对于这种数据窗口,PB默认是不能修改的。当然我们可以通过设置它的Update 属性,数据窗口的Update Properties用来设置数据窗口是否可Update、可Update的表、可Update列等,但不能同时设置两个表可更新;所以当修改它的数据项时,我们不能简单地用dw_1.update()来更新table,我们可以在程序中设置数据窗口可更新的一个表A(及其可更新列),其他表为不可更新,更新完表A后,再设置另一表B为可更新,表A设置为不可更新,依次类推。
解决示例:
我们以PowerBuilder7自带的ASA6数据库为例:
1、新建一个数据窗口d_grid_dep_emp,它的Select语句为
SELECT department.dept_id,
department.dept_name,
employee.emp_id,
employee.emp_fname,
employee.emp_lname
FROM department, employee
where employee.dept_id = department.dept_id
2、设置数据窗口d_grid_dep_emp的属性,将列的taborder改为非0值;并点击菜单Rows——>Update Properties,设置此数据窗口Allow Updates,Table to Update设为department,Updateable Columns为department.dept_id,department.dept_name。
3、在窗口中更新数据窗口按钮的clicked事件编写脚本:
long ll_rtn
// 修改Department表(Department表在第2步已设置为可更新)
ll_rtn = dw_1.update(true, false)
if ll_rtn = 1 then
//关闭对Department表的修改
dw_1.Modify("department_dept_name.Update = 'No'")
dw_1.Modify("department_dept_id.Update = 'No'")
dw_1.Modify("department_dept_id.Key = 'No'")
//设置Employee表成为新的可修改表
dw_1.Modify("DataWindow.Table.UpdateTable = 'employee'")
dw_1.Modify("employee_emp_id.Update = 'Yes'")
dw_1.Modify("employee_emp_fname.Update = 'Yes'")
dw_1.Modify("employee_emp_lname.Update = 'Yes'")
dw_1.Modify("employee_emp_id.Key = 'Yes'")
//修改Employee表
ll_rtn = dw_1.Update()
IF ll_rtn = 1 THEN
COMMIT USING SQLCA;
dw_1.retrieve()
messagebox('提示信息','更新成功!')
ELSE
ROLLBACK USING SQLCA;
MessageBox('提示信息', '更新失败!')
END IF
//重设修改标志
dw_1.Modify("department_dept_name.Update = 'Yes'")
dw_1.Modify("department_dept_id.Update = 'Yes'")
dw_1.Modify("department_dept_id.Key = 'Yes'")
dw_1.Modify("DataWindow.Table.UpdateTable = 'department'")
dw_1.Modify("employee_emp_id.Update = 'No'")
dw_1.Modify("employee_emp_fname.Update = 'No'")
dw_1.Modify("employee_emp_lname.Update = 'No'")
dw_1.Modify("employee_emp_id.Key = 'No'")
ELSE
ROLLBACK USING SQLCA;
MessageBox('提示信息', '更新失败!')
END IF
这样就完成了对两个表的更新。当然我们可以将上面功能编成一个函数,在需要时调用。
;)
使用WTL进行Windows桌面应用开发-第二部
1. 在第一部基础上增加更深入的内容,比如WTL提供的标准Win32
窗口
和自定义
窗口
的使用方式. 2. 涉及到一些项目开发难题的
窗口
自定义的解决方案。 3. 涉及到Gdiplus绘图的项目开发难题的一些解决方案。 4. 推荐使用的...
PB实现
数据
窗口
的
多表
更新
一般情况下,一个
数据
窗口
只能
更新
一个
数据
库表,但在MIS开发过程中,我们经常遇到这种情况:一个
数据
窗口
中由两个或更多个
数据
库表作为
数据
源,并需要对其进行录入或修改,如何给出
多表
更新
的通用解决方案就成为M
实现PowerBuilder
数据
窗口
的
多表
更新
实现PowerBuilder
数据
窗口
的
多表
更新
PowerBuilder的
数据
窗口
对象是其特有的智能对象,其封装性好、功能强大、表现形式丰富多样,为此,许多MIS开发人员对PowerBuilder推崇备至,将其视为首选开发工具。 一般情况...
3.IDA-
数据
显示
窗口
(导出
窗口
、导入
窗口
、String
窗口
、...
窗口
)
在反汇编
窗口
中,ESC键的作用与Web浏览器的“后退”按钮类似,而在打开的其他
窗口
中,ESC键用于关闭
窗口
。 1.导出
窗口
导出
窗口
列出文件的入口点。这包括程序的执行入口点(在程序的文件头部分指定),以及任何由...
【PB】
多表
更新
数据
窗口
数据
源来自两个或两个以上的表,相当于多个表连接建立的一个视图,对于这种
数据
窗口
,PB默认是不能修改的。当然我们可以通过设置它的Update 属性,
数据
窗口
的Update Properties用来设置
数据
窗口
是否可Update...
PowerBuilder
1,075
社区成员
66,437
社区内容
发帖
与我相关
我的任务
PowerBuilder
PowerBuilder 相关问题讨论
复制链接
扫一扫
分享
社区描述
PowerBuilder 相关问题讨论
社区管理员
加入社区
获取链接或二维码
近7日
近30日
至今
加载中
查看更多榜单
社区公告
暂无公告
试试用AI创作助手写篇文章吧
+ 用AI写文章