选择显示字体大小

实现pb数据窗口的多表更新


  powerbuilder的数据窗口对象是其特有的智能对象,其封装性好、功能强大、表现形式丰富多样,为此,许多mis开发人员对powerbuilder推崇备至,将其视为首选开发工具。

  一般情况下,一个数据窗口只能更新一个数据库表,但在mis开发过程中,我们经常遇到这种情况:一个数据窗口中由两个或更多个数据库表作为数据源,并需要对其进行录入或修改,如何给出多表更新的通用解决方案就成为mis开发人员不容回避的问题。笔者在某管理信息系统的开发过程中,尝试了几种双表更新的解决方法,选出一种比较好的方案,以飨读者。

  一、具体步骤

  1. 在数据窗口建立时,选择sql select,显示风格可以是tabular、grid或freeform中的任一种。选出两表需要录入或修改的列,其中两表的主键和非空列必须选中,确定选择条件,建立连接关系。

  2. 在选单“rows/update”中选择第一个表的全部数据项为可更新项。

  3. 把两表需要修改项的tab order数值改为非0值,使其在数据窗口中成为可修改项。

  为了使方案具有通用性,建立全局函数f—update—2table,有五个参数:dw—obj、table1、table2、key1、key2,分别代表所要更新的数据窗口、两表表名和两表主键列名,其中dw—obj为datawindow类型,其余四参数均为string类型。该函数返回值为boolean型,返回true表示成功,返回false表示失败。

  二、函数思路

  1. 先针对第一个数据库表调用update函数更新。注意参数的使用:第一个参数作用是控制数据窗口更新前是否强制性调用accepttext(),在数据窗口更新前通过有效性验证;第二个参数是控制更新标志的复位,为true时更新标志复位,为false时更新标志不复位。

  2. 更改数据窗口的updatetable属性,使其指向第二个表,并把第一个表的各数据项update属性和主键列的key属性改为no,接着把第二个表的各数据项update属性和主键列的key属性改为yes。

  3. 调用update函数更新第二个表。

  4. 两表更新成功后,把两表的列属性、主键属性改回到初始状态,以便为下一次的两表更新调用做好准备。


 


关键字 本文所属关键字

相关 与本文相关文章

分类 所有文章关键字导航

源码编程相关

Java   Asp   PHP   .Net   XML   C/C++   CGI   VB   Jsp   J2ee   J2se   J2me   EJB   Servlet   Tomcat   Resin   Struts   Weblogic   Eclipse   ANT   GUI   JMS   Web servise   IDEA   Webphere   Hibernate   Spring   Jboss   Applet   Swing   Socket   Javamail   Perl   Ajax   P2P   安全   模式   框架   测试   开源   游戏

SQL数据库相关

My-SQL   Ms-SQL   Access   DB2   Oracle   Sybase   SQLserver   索引   存储过程   加密   数据库   分页   视图  

手机无线相关

3G   Wap   CDMA   GRPS   GSM   IVR   彩信   短信   无线   增值业务

网页设计制作相关

HTML   CSS   网页配色   网页特效   Javascript   VBscript   Dreamweaver   Frontpage   JS   Web   网站设计

网站建设推广相关

建站经验   网站优化   网站排名   推广   Alexa

操作系统/服务器相关

Windows XP   Windows 2000   Windows 2003   Windows Me   Windows 9.x   Linux   UNIX   注册表   操作系统   服务器   应用服务器

图形图像多媒体相关

Photoshop   Fireworks   Flash   Coreldraw   Illustrator   Freehand   Photoimpact   多媒体   图形图像

标准 网站致力的规范

Valid CSS!

无不良内容,无不良广告,无恶意代码

Valid XHTML 1.0 Transitional

creativecommons