PB数据窗口的多表更新

PB数据窗口的多表更新

ID:40562046

大小:41.00 KB

页数:4页

时间:2019-08-04

PB数据窗口的多表更新_第1页
PB数据窗口的多表更新_第2页
PB数据窗口的多表更新_第3页
PB数据窗口的多表更新_第4页
资源描述:

《PB数据窗口的多表更新》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、PB数据窗口的多表更新原理分析:数据窗口数据源来自两个或两个以上的表,相当于多个表连接建立的一个视图,对于这种数据窗口,PB默认是不能修改的。当然我们可以通过设置它的Update属性,数据窗口的UpdateProperties用来设置数据窗口是否可Update、可Update的表、可Update列等,但不能同时设置两个表可更新;所以当修改它的数据项时,我们不能简单地用dw_1.update()来更新table,我们可以在程序中设置数据窗口可更新的一个表A(及其可更新列),其他表为不可更新,更新完表A后,再

2、设置另一表B为可更新,表A设置为不可更新,依次类推。解决示例:我们以PowerBuilder7自带的ASA6数据库为例:1、新建一个数据窗口d_grid_dep_emp,它的Select语句为SELECTdepartment.dept_id,department.dept_name,employee.emp_id,employee.emp_fname,employee.emp_lnameFROMdepartment,employeewhereemployee.dept_id=department.dept

3、_id2、设置数据窗口d_grid_dep_emp的属性,将列的taborder改为非0值;并点击菜单Rows――UpdateProperties,设置此数据窗口AllowUpdates,TabletoUpdate设为department,UpdateableColumns为department.dept_id,department.dept_name。3、在窗口中“更新”数据窗口按钮的clicked事件编写脚本:longll_rtn//修改Department表(Department表在第2步已设置为可

4、更新)ll_rtn=dw_1.update(true,false)ifll_rtn=1then//关闭对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=emplo

5、yee)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()IFll_rtn=1THENCOMMITUSINGSQLCA;dw_1.retrieve()messagebox(提示

6、信息,更新成功!)ELSEROLLBACKUSINGSQLCA;MessageBox(提示信息,更新失败!)ENDIF//重设修改标志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

7、(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)ELSEROLLBACKUSINGSQLCA;MessageBox(提示信息,更新失败!)ENDIF这样就完成了对两个表的更新。当然我们可以将上面功能编成一个函数,在需要时调用。PowerBuilder的数据窗口对象是其特

8、有的智能对象,其封装性好、功能强大、表现形式丰富多样,为此,许多MIS开发人员对PowerBuilder推崇备至,将其视为首选开发工具。一般情况下,一个数据窗口只能更新一个数据库表,但在MIS开发过程中,我们经常遇到这种情况:一个数据窗口中由两个或更多个数据库表作为数据源,并需要对其进行录入或修改,如何给出多表更新的通用解决方案就成为MIS开发人员不容回避的问题。笔者在某管理信息系统的开发过程中,尝试了几种双表更新的解决方法,

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。