文档详情

I如何优化你的PowerBuilder程序.doc

发布:2017-01-08约字共9页下载文档
文本预览下载声明
如何优化你的PowerBuilder程序 PowerBuilder是快速有效的开发工具,在程序实现过程灵活,下面介绍一下在开发高校产品过程中积累的一些经验。 SQL?语句 1、缓冲?SQL?语句 SQL语句,SQL?建立缓冲区来 ???????????在缺省情况下,SQL?语句的缓冲区是关闭的,你可以 ????????????????????????????SQLCACHE?=?n ??????????n?表示装入缓冲区的?SQL?语句数量(缺省为0)。 ???dw_1.SetTransObject(sqlca) ????SQLCA.dbParm?=?SQLCache?=?0 ????dw_1.retrieve() ????????如果将上例的?SQLCache?=?0?改为?SQLCache?=?25,,否则也将影响程序执行的性能。 ????注:此方法对用?ODBC?和?orACLE?连接的数据库非常有效。 2、捆绑变量 ???SQLCA.DBPARM?=?DISABLEBIND=1 ????Insert?INTO?DA_DH?valueS(1,河南0) Insert?INTO?DA_DH?valueS(2,河南1) Insert?INTO?DA_DH?valueS(3,河南2) Insert?INTO?DA_DH?valueS(4,河南3) Insert?INTO?DA_DH?valueS(5,河南4) Insert?INTO?DA_DH?valueS(6,河南5) PB?将重新处理每个带有 SQL语句。如果将上例改为: SQLCA.DBPARM?=?DISABLEBIND=0 ????Insert?INTO?DA_DH?valueS(1,河南0) Insert?INTO?DA_DH?valueS(2,河南1) Insert?INTO?DA_DH?valueS(3,河南2) Insert?INTO?DA_DH?valueS(4,河南3) Insert?INTO?DA_DH?valueS(5,河南4) Insert?INTO?DA_DH?valueS(6,河南5) Insert?语句按如下格式进行处理: Insert?INTO?DA_DH?valueS(?,?) ????其中???称为占位符。系统性能将有所增强。 3、用数据窗口代替?SQL?语句 SQL?语句都是可行的,PB?对数据窗口和?SQL?语句采用不同的处理机制,因此, 例:为里检索电话档案中的用户名,可以利用?SQL?语句, 如果使用第一中方法: 首先定义一个游标: ????DECLARE?CUR?CURSOR?FOR ????Select?DA_DH.HM ????FROM?DA_DH; 然后可以: ????STRING?stxt[],st ????int?li ????????open?cur ????do?li?=?li?+?1 ????????fetch?cur ????????into?:stxt[li]?; ????????st=st+stxt[li]?+?~r~n ????loop?while?stxt[li] ????close?cur; ????mle_1.txt?=?st 也可以使用第二种方法: ????dw_1.settransobject(sqlca) ????dw_1.retrieve() ????利用?POWERBUILDER?PROFILER?工具进行检查,对比两种 方法?????????????????????所需时间?(百分之一秒) SQL?语句  ??? 100.9857 49.0133   由于数据窗口或 DATASTORE?使用了标准的内嵌的代码,DATASTORE..????即使是必须用 SQL?语句的时候,也应该尽量. 二、数据窗口的编程和执行 数据窗口是PB最值得被称道的,?其具有如下特点: 1.?多种显示方式. 2.?多种编辑方式. 3.?使用方法简单. 4.?具有多种报表形式. 5.?可实现屏幕滚动. 6.?可实现数据的有效性校验. 7.?执行性能显著提高. 8.?编程工作变少. 9.?可以在数据窗口内部实现数据哭的更新. ,?我将介绍一些用于提高数据窗口性能的技术. 1.?减少连接数据库的次数 .?因此在程序中,一旦与数据库连接后,?减少连接数据库的次数. PowerBuilder?提供里两个函数来建立数据窗口与事务对象的连接: SetTrans() ????????SetTransObject() 在程序中应当尽量使用?SETTRANSOBJECT(),?因为SETTRANS()?函数在每次RETRIEVE(),?Update()?等函数之后,?都要执行数据库的
显示全部
相似文档