I如何优化你的PowerBuilder程序.doc
文本预览下载声明
如何优化你的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.985749.0133 由于数据窗口或 DATASTORE?使用了标准的内嵌的代码,DATASTORE..????即使是必须用 SQL?语句的时候,也应该尽量.二、数据窗口的编程和执行数据窗口是PB最值得被称道的,?其具有如下特点:1.?多种显示方式.2.?多种编辑方式.3.?使用方法简单.4.?具有多种报表形式.5.?可实现屏幕滚动.6.?可实现数据的有效性校验.7.?执行性能显著提高.8.?编程工作变少.9.?可以在数据窗口内部实现数据哭的更新.,?我将介绍一些用于提高数据窗口性能的技术.1.?减少连接数据库的次数.?因此在程序中,一旦与数据库连接后,?减少连接数据库的次数.PowerBuilder?提供里两个函数来建立数据窗口与事务对象的连接:SetTrans()????????SetTransObject()在程序中应当尽量使用?SETTRANSOBJECT(),?因为SETTRANS()?函数在每次RETRIEVE(),?Update()?等函数之后,?都要执行数据库的
显示全部