【网学提醒】:本文主要为网上学习者提供浅谈PowerBuilder中动态DataWindow的技术应用,希望对需要浅谈PowerBuilder中动态DataWindow的技术应用网友有所帮助,学习一下吧!
资料包括: 论文(3页1253字) 源码
说明:前言
在PowerBuilder的应用程序开发过程中,对数据库中数据进行操作的对象是数据窗口对象(DataWindow),利用数据窗口对象,我们可以十分方便地完成对数据库中已经存在的表中数据进行检索、
查询、插入、删除和更新。但是,在实际
问题中,我们常常遇到数据库中的一些表是用户在
程序运行期间动态生成的,若要对这样表中的数据进行操作,就要运用动态数据窗口对象,值得提到的一点是,在动态数据窗口对象生成时,其标题区(Header Band)中的文本不能直接显示成汉字,这的确是一点遗憾,不过这个问题可以通过映射的方法得到解决。
一、问题的提出
设有如下两张表:
A表中的记录是用户可以在
程序运行期间进行自由增加、修改、删除和更新的,B表中的属性(即:字段)由A表中的记录决定并动态创建,而且,能够方便地对B表中的数据提供汉化的操作界面。当然,将B表创建为下表
也是可以的,但是,在动态生成数据窗口对象时,其标题区(Header Band)中的文本不会显示成汉字,而是一些乱码,反而不利于问题的解决。
二、问题的解决
1、动态创建B表的解决
我们要动态创建B表,就要构建动态SQL语句。何谓动态SQL语句?数据库应用
程序通常进行确定的工作,因此在编写和编译时,就可以确定完整的SQL语句,但当需要使用PowerBuilder不支持的嵌入SQL语句(如DDL语句),或者在编译时不知道语句的具体格式或参数,则在运行时构成SQL语句,这类语句被称为动态SQL语句。
动态SQL语句的格式:
EXECUTE IMMEDIATE SQL statement [Using Transation Object];
参数说明:
SQL statement 包含一条有SQL语句的字符串
Transation Object 事务对象
2、动态数据窗口对象创建及标题区(Header Band)中文本汉化的解决
(1)在
程序运行时,我们可以调用Create函数动态生成数据窗口对象。格式如下:
DataWindowControl.Create(Syntax{,Errorbuffer})
参数说明:
DataWindowControl 将在其中创建数据窗口对象的数据窗口控件名
Syntax 数据窗口对象源代码
Errorbuffer 用于保存错误信息的字符串
(2)由于标题区(Header Band)中文本框的名称是对应细目区(Detail Band)中相应列的名称加上"_t"构成的,而细目区(Detail Band)中列的名称又是相应表的属性的名称。因此,我们能够使用游标(Cursor)取出A表中的ywm和zwm的值,然后使用映射的方式替换标题区(Header Band)中文本框的文本(Text)属性,从而使标题区(Header Band)中文本框的文本显示为相应的汉字。
目录:一、问题的提出
二、问题的解决
三、一个简单的例子
四、结束语
作者点评:利用PowerBuilder的动态数据窗口对象的技术应用,可以解决实际中数据库的动态数据处理问题,从而使应用
程序具有更好的交互性和适应性,若稍加变动,用途是十分广泛的。