计算机论文
PowerBuilder内部查询机制可以使数据窗口查询
时间:2022-07-06 22:29 所属分类:计算机论文 点击次数:
1.查询综合信息
目前,随着工具软件的发展和广泛应用,数据库应用系统的发展如虎添翼,其中,PowerBuilder以其独特的数据窗口(DataWindow)倍受欢迎。
PowerBuider它是美国著名的数据库应用开发工具制造商Powersoft公司于1991年6月推出的功能强大.性能优异的开发工具是一种面向对象的开发工具.具有可视图形界面的.快速交互开发工具。智能数据窗口对象是其本质。该对象可以操作关系数据库的数据,而无需写入SQL即可直接检索语句,.更新并以多种形式显示数据源中的数据。但需要注意的是,必须使数据窗口成为窗口(Window)数据窗口控制下一个连接对象,使用户在应用程序执行过程中访问数据库中的数据。
利用PowerBuilder提供的内部查询机制可以使数据窗口作为查询条件的输入,也可以使数据窗口作为查询结果的输出,使数据窗口中的所有数据项都能自由组合查询。例如:在窗口中W_que建立两个数据窗口控制dw_1和dw_2、分别连接两个数据窗口对象dw_que1与dw_que2,其中dw_1用于输入查询条件,dw_2用于显示满足查询条件的所有组。事实上,在一个数据窗口中可以完全实现条件输入和元组显示,考虑到这两个操作之间的差异(例如:条件输入可编辑,元组显示不可编辑;条件输入可以在一定范围内,元组显示只满足所有条件记录……)使用两个数据窗口进行控制。这就要求了。dw_2与dw_1数据共享,即要求dw_que1与dw_que两个数据窗口的数据源完全相同。
用这种方法实现查询优势突出,例如:通过设置数据窗口中相应的编辑风格(EditStyles)相应的下拉式数据窗口(DropDownDataWindow),使显示的元组文字化。请注意,应提前建立下拉式数据窗口。数据窗口中相应列的编辑风格也能满足其他显示需求。利用数据窗口的风格特点:查询表的列宽.列序可以自由更改,甚至可以覆盖一些列,以满足查询显示的需要。综合查询的信息来自多个表,可以通过改变数据窗口的数据源来实现。但是,正如我们对问题的描述所示,如果我们需要的查询项随机来自43个表中的数据项,则显示项也是随机的。可选输出项的显示称为动态查询(DynamicQuery)上述方法仍用于数据窗口dw_que1与dw_que2的数据源将是这43张表的连接,更不用说效率了。仅从这426个项目中输入查询条件,并显示这426个项目,就会让人敬而远之。因为,在每次查询之前,我不知道查询的要求是什么,所以每个表中的每个数据项都是必不可少的;另一方面,每次查询,一旦查询条件确定.显示项目确定后,我们会发现每次有意义的查询都不需要43张表。换句话说,每次查询都不需要连接43张表,而应该只连接选定数据项所在的表,即数据源是动态的。由于数据源不确定,无法设计数据窗口,无法实现动态查询。
2.实现计算机动态查询
在一些实际的应用系统开发中,由于用户在开发前提下不需要查询,希望在系统运行中查询所有数据项的任意组合,以满足各方的需求,实现动态查询(即从43张表中随机选择数据项组合作为查询条件,随机选择数据项作为显示项)。应用于实现此类查询PowerBuilder运行时通过编程动态创建数据窗口,并动态控制数据窗口。
动态创建数据窗口,应用程序需要执行以下任务:
•动态地构造SQL语句。
•使用符合数据窗口语法的字符串,为当前的数据窗口控制创建一个数据窗口对象。具体实现如下:
2.1动态地生成SQL语句,根据SQL的语法:SELECTstringaFROMstringb
WHEREstringc
也就是生成stringa,stringb,stringc.用户输入要显示的列,一旦输入,列名就会确定,所有列名都会拼成一个“串”,中间用“,”分隔,形如“columm1,column2,column3..,columnr”,则动态生成stringa;用户输入查询条件,包括相应的列.满足的条件或范围.逻辑关系等,把这些条件拼成一串,也就是说,stringc,显然,所有的列名都是确定的,他们所在的表名也是确定的,表名,stringb语法规则可以构建。
注:上面的stringc两部分(表间关系stringc1及查询条件stringc2)组成;表名串stringb与表间关系stringc1.查询条件stringc2及显示条目stringa均有关。
在实现过程中:为了接近实际应用,习惯上先输入查询条件,再输入显示条目。即输入查询条件后,生成strinc2,stringb,stringc1;然后在输入显示条目后生成stringa,并修改stringc1,stringb。最后形成SQL语法:
str="select"+stringa+"from"+stringb+"where"+stringcl+stringc2
2.2在当前的事物对象中使用相关的东西SyntaxFromSQL()函数生成符合数据窗口语法的字符串:
exp=syntaxfromsq1(sq1ca,str,strsty,error)生成数据窗口的源代码
其中:strsty为数据窗口显示风格,例如:
strsty="style(type=grid)datawindow(units=lcolor=12632256)text(font.face='system')"
2.3创建数据窗口对象
dw_que.create(exp)
实现了用户要求的随机查询。
在真实系统中,用户在输入查询条件时希望通过选项输入查询信息。由于存储在库表中的大量信息是代码,因此需要将输入的文本信息转换为相应的代码,然后连接到查询条件中。为了简化输入,提高准确性,可以使用代码输入,即动态嵌入下拉式数据窗口。在显示查询结果的数据窗口中,下拉式数据窗口不能提前嵌入,可以提前制作函数,根据程序运行中选定的列将代码转换为相应的汉字显示,从而更好地提高用户要求的随机查询。
根据数据窗口的动态特性,运行时可以确定的数据窗口采用动态方式创建,使应用程序能够更灵活地满足用户的需求。
3.总结
多级菜单选择将查询结果文字化,使复杂的查询问题得到更好的解决。动态查询方法不仅可以应用于人事管理信息系统,还可以解决其他需要复杂查询的数据库应用系统。这种动态查询方法在数据库应用系统中的在数据库应用系统中的应用,避免了开发者在应用系统开发中冥想所有可能的查询条件,而用户在系统运行中总会遇到一些无法满足查询要求的矛盾。动态查询的实现缩短了开发周期,减少了产品维护。