欢迎来到三一办公! | 帮助中心 三一办公31ppt.com(应用文档模板下载平台)
三一办公
全部分类
  • 办公文档>
  • PPT模板>
  • 建筑/施工/环境>
  • 毕业设计>
  • 工程图纸>
  • 教育教学>
  • 素材源码>
  • 生活休闲>
  • 临时分类>
  • ImageVerifierCode 换一换
    首页 三一办公 > 资源分类 > PPT文档下载  

    第4章PowerScript编程语言.ppt

    • 资源ID:4954654       资源大小:230.54KB        全文页数:69页
    • 资源格式: PPT        下载积分:10金币
    快捷下载 游客一键下载
    会员登录下载
    三方登录下载: 微信开放平台登录 QQ登录  
    下载资源需要10金币
    邮箱/手机:
    温馨提示:
    用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)
    支付方式: 支付宝    微信支付   
    验证码:   换一换

    加入VIP免费专享
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    第4章PowerScript编程语言.ppt

    第4章 PowerScript编程语言,教学目标教学重点教学过程,教学目标,熟悉和掌握PowerBuilder 9.0的基本语法规则 对PowerBuilder 9.0有初步的认识和了解,并能够编写一些简单的小程序,教学重点,标识符命名规则注释语句基本控制语句创建与释放对象实例嵌入式SQL常用函数创建自定义函数和结构,教学过程,语言特点 Script编程视图的使用语言基础数据类型与变量说明操作符创建与释放对象实例条件语句循环语句返回语句与终止程序运行嵌入式SQL常用函数创建自定义函数和结构,第4章 PowerScript编程语言,4.1 语言特点PowerScript是一种高级的、结构化的第四代(4GL)编程语言,它的语言成分和大多数编程语言很相似,但与众不同之处在于它提供了一套完整的嵌入式SQL语句,开发人员能够像使用其它语言成分那样使用他们,这就大大增强了程序操纵和访问数据库的能力。PowerScript的控制语句以及嵌入的SQL语句利用可视化工具可以粘贴到程序当中,而不用逐字从键盘输入,提高了编程效率和输入的正确率。丰富的数据类型和众多的函数进一步提高了PowerBuilder的适应性和灵活性。,4.2Script编程视图的使用,PowerBuilder编写代码的环境称为Script编程视图。在Script编程视图中,可以进行变量的定义、查看事件及函数列表、对所选择的事件进行编程等工作。在这个编辑器中,不同的语法成分用不同的颜色区分,除了具备复制、剪切、粘贴文本等常用功能外,还可以在PainterBar中选择相应的粘贴功能,可以将PowerBuilder内置函数、自定义函数、外部函数、SQL语句、流控制语句、全局变量、共享变量、当前应用中窗口名、当前的对象名等内容粘贴到程序的插入点位置。,4.2.1编辑代码,1、选择文本2、删除、剪切、复制、粘贴文本3、移动文本4、撤销操作5、重做6、查找和替换文本7、加注释和去掉注释,4.2.2 强大的粘贴功能,1、粘贴函数2、粘贴流控制语句,4.2.3 编译代码,4.3 语言基础,4.3.1断行、续行与多条语句回车键换行续行符:用“&”做为续行符。它使一条语句可以写在两行上,但要注意不能在保留字或变量名中间加续行符。一行写多条语句,语句间用分号分隔。4.3.2注释行注释:/块注释:/*开始,*/结束。,4.3.3 标识符标识符是程序中用来代表变量、标号、函数、窗口、控件、菜单、对象等名称的符号。PowerBuilder 9.0中标识符的命名规则如下:(1)必须以字母或下划线开头。(2)其余字符可以是字母、数字和如下的特殊字符:短横线“-”、下划线“_”、美元符号“$”,号码符号“#”和百分符号“%”。(3)最长40个字符,且中间不能插入空格。(4)多数情况下不区分大小写,但要注意使用大小写的一致性,便于阅读和维护程序。(5)保留字不能做标识符。,4.3.4特殊字符字符串中可以包含特殊的ASCII码字符,它们不能使用常规的输入方法直接输入,需要使用其他字符来代替。常用的特殊字符如下表:,空值(null)是与数据库交换数据时使用的一种特殊值。它代表未定义或是不可知。变量被赋予空值的途径有两条:(1)从数据库中读到空值。(2)使用SetNull()函数将变量设置为空值。,4.3.5 空值(null),4.3.6对象、属性、函数和事件的引用方法,访问对象属性的格式为:对象名.对象属性程序中访问对象函数与事件的格式:objectname.type calltype when functionname(argumentlist)其中objectname是对象名。Type取值为FUNCTION或EVENT,用于指明是访问函数还是事件,默认为FUNCTION。Calltype用于指明PowerBuilder查找函数的时机,有效取值为:STATIC(默认值):编译时查找函数,若不存在,产生编译错误;DYNAMIC:程序运行时查找函数,若不存在,产生运行错误。When用于指明函数或事件是立即执行还是当前程序段执行完毕后执行,取值为:TRIGGER(默认值):立即执行;POST:当前程序段执行完毕后执行;Functionname指明调用的函数或事件名称;Argumentlist给出函数或事件的参数。,4.3.7 代词,1)This代词 This代词代表窗口、用户对象、菜单、应用对象或控件本身。2)Parent代词 Parent代词可以用在窗口控件、用户定制的对象、菜单脚本中。在窗口控件中使用parent时,parent表示包含该控件的窗口。在菜单项脚本中使用parent,表示当前菜单项的上一级菜单项。3)ParentWindow代词ParentWindow代词只能在菜单脚本中使用,它代表运行时菜单所在的窗口。4)Super代词在编写控件或者对象的子对象的程序时,可以调用祖先的程序,用户可以直接使用祖先对象的名称调用它们,也可以使用Super来引用直接双亲。,4.3.8 保留字,保留字是PowerBuilder内部使用的一组单词,有特殊的含义,不能再把他们用作标识符。,4.3.9 事件处理程序的编写环境,4.4 数据类型与变量说明,与其它编程语言类似,PowerScript提供了丰富的数据类型,主要包括标准数据类型、系统对象数据类型、任意数据类型和枚举类型。,4.4.1 标准数据类型,Blob:二进制大对象,用于存储大量数据,例如图像、大文本等。boolean(布尔型),布尔变量有两个值:true和false,分别表示真和假。创建布尔变量时,其初始值是false。char或character(字符型),该类型变量用于存储一个ASCII字符。date(日期型),日期包含年、月、日,年月日之间用连接符(-)连接。Datetime(日期时间型),仅用于访问数据库的Datetime型数据。Decimal(带符号十进制数),最高精度为18位。Double(带符号浮点数),15位有效数字,范围从2.2E-308到1.7E+308。real(实型),精度6位,范围从1.17E-38到3.4E+38,实型变量被创建时的初始值是0。,integer或int(整型),整数的取值范围是从-32768到32767。Long(长整型),32位带符号整数。string(字符串型),字符串要用引号(单引号或双引号)括起来。字符串变量中可以包含字母、数字或符号,其变量长度在0到65536之间,字符串常量最大长度可达1024。time(时间型),包含小时、分钟、秒,小时、分钟、秒之间用冒号(:)分隔。UnsignedInteger或Uint(无符号整型),16位无符号整数。Unsignedlong,32位无符号整数。还有any类型。,4.4.2 系统对象数据类型,在Pb中,窗口、选单、各种控件都是系统对象,每一种系统对象实际上都是定义在Pb内部的一种数据类型。通常我们不必把这些对象当作数据类型来考虑,而只需要通过工具栏或选单定义他们即可,因为他们都是可视化的对象。有些情况下,需要动态地处理窗口、选单或控件等系统对象时,就需要定义系统对象数据类型。例如:window mywin/说明窗口变量可以使用浏览器Browser查看PB所支持的系统对象。,4.4.3 枚举类型,枚举类型是PB定义的特殊常量,常用于对象或控件的属性、系统函数的参数等。但在PowerScript中我们不能定义自己的枚举类型,而只能按系统要求使用它。枚举类型实际上是一组值,每个值都以英文单词开始,以感叹号!结束,例如yesno!。例如:将单行文本编辑器的对齐方式设置为居中对齐:Sle_1.aligment=Center!,4.4.4 变量的声明,变量(variable)是在程序执行时其值可变的量。在Pb中,变量在使用前,要先予以说明。系统预定义的5个全局变量除外(SQLCA、SQLDA、SQLSA、Error、Message)。1.普通变量声明语法结构:数据类型 变量名=初值,变量名=初值,其中方括号中的内容是可选项。变量未赋初值,系统会自动赋给变量默认值。如:数值型变量的默认初值是0。注意:变量的初值是在编译时给定的。如:date dd1,dd2=today()dd1=today()其中dd1没有被初始化,但dd2被初始化成系统日期。,2.Blob型变量的声明语法:Blob大小 变量名“大小”指明Blob变量以字节为单位的长度,默认该项时,默认长度为0,且系统会根据实际数据自动调整其长度。例如:Blob100 ib_Emp_picture/声明一个长度为100字节的blob性实例变量Blob变量不能赋初值。3.Dec变量的声明语法:dec精度 变量名=初值其中精度是整数,指定小数点后的数字位数,若未指定,则以赋值时给定的精度为准。例如:Dec4 lc_rate1/声明小数点后4位数字的变量,4.4.5 变量数组,数组代表一系列具有相同类型的变量,他们用一个变量名,通过下标访问数组中的每个元素。例如:Integer person30/声明整型数组person,他有30个元素,下标从1到30Integer num3 to 10/下标从3到10,共8个元素Real lr_Array10,10/声明一个二维数组,共10*10个元素,4.4.6 变量的作用域,变量的作用域就是变量使用的范围。根据变量的作用域可将变量分为四种类型:全局变量Global、实例变量Instance、共享变量Shared、局部变量Local。1.全局变量的作用域最大,它在应用程序的任何地方都可以使用。2.实例变量是某个特定对象的实例化。可以在应用对象、窗口对象、用户对象或菜单对象的Script编辑器中定义它,他的作用范围不仅在所在对象的全部事件及函数,而且包括该对象的所有控件和函数。若在定义范围之外使用它,则要通过点符号(.)完成。3.共享变量并不常用,只在特定情况下才会用到。共享变量是静态变量。在一个对象内定义,可以在该对象内部的任何地方被使用。同一个类的所有实例共享这种变量。共享变量在对象关闭和再次打开的时候仍然保持它自己的值。4.局部变量只能在某程序段或函数内部有效,可以在过程、代码、函数内部声明和使用局部变量,但在声明局部变量的范围之外就不能使用局部变量,在不同的函数内部或事件脚本范围内局部变量可以重名,不会引起混乱。5变量的优先级四种变量的优先级由高到低依次为:局部变量实例变量全局变量共享变量。,4.4.7变量的命名规范,PowerScript对变量的命名约定了命名规范,即变量名中包含标识变量作用域和数据类型的代词。变量的命名规范见下表:,4.4.8 常量,常量就是在程序运行过程中不能改变的量,声明常量就是在声明的常量标识符的前面加上关键字constant就可以了。常量声明语法格式为:constant 数据类型 常量名=值例如,constant real pi=3.14/声明常量常量在声明时必须赋值。声明常量可以提高程序的可读性,使程序易于修改。,4.5 操作符,PowerScript支持的运算符可分为四种类型:算术运算符、关系运算符、逻辑运算符和连接运算符。,1、算术操作符,算术操作符有5个:+、-、*、/、,此外PowerScript还提供了一组扩展的算术操作运算符(与C语言中使用的算术操作符相同):+、-、+=、-=、/=、*=、=。,2、关系操作符,关系操作符用来对相同类型的量进行大小比较运算,比较的结果为TRUE、FALSE、NULL三者之一。常用于条件语句和循环语句。关系操作符有:=、=。,3、逻辑操作符,逻辑操作符用来对布尔型的量进行运算,结果是True或False。有三个逻辑操作符:not、and、or。,4、连接操作符,连接操作符只有一个,就是符号“+”,用于把两个String型或Blob型变量的内容连接在一起,形成新的字符串或Blob型数据。例:test=中国+北京,在表达式中,运算按操作符的特定次序进行,这种次序就是操作符的优先级。当然,使用括号可以改变运算次序。优先级顺序如下:()+(正号)、-(负号)、+、-*、/+、-=、=、NOTANDOR,5、操作符的优先级,创建与释放对象实例,1、创建对象实例对非可视的系统对象类型,使用CREATE语句创建对象实例。语法一:objectvariable=CREATE objecttype例如:transacrion DBTrans/声明事务对象变量DBTransDBTrans=CREATE transaction/创建事务对象实例DBTrans.DBMS=“ODBC”,2、释放对象实例用create语句创建的对象实例在使用完毕后应该及时释放,以使对象实例占据的内存资源可以重新使用。释放对象实例的语句是DESTROY,释放之后,该对象实例不能再被引用。语法:DESTROY objectvariable例如:DESTROY DBTrans3、收集废弃对象收集废弃对象是指PB从内存中把失去引用的对象删除,因为应用程序已经无法使用这些对象,白白消耗系统资源。GarbageCollect()函数立即执行收集废弃对象功能,应用程序执行该函数时,PB识别未用对象并删除该对象及其类定义所占用的内存空间。,4.7条件语句,1、IF语句IF THEN 语句是一个选择分支结构语句。它有单行和多行两种格式。单行IF THEN语句的一般格式为:IF condition THEN action1 ELSE action2 其中condition 是一个条件表达式,action1和action2是一条语句。如果condition结果为TRUE,执行action1语句,否则执行action2语句。多行IF THEN语句的一般格式为:IF condition1 THEN action1 ELSEIF condition2 THEN action2 ELSE action3 END IF其中condition1和condition2是条件表达式,action1、action2和action3是一条或者多条语句。,2、CHOOSE CASE语句CHOOSE CASE语句根据测试表达式的值选择不同操作,语法格式:CHOOSE CASE testexpressionCASE expresssionliststatementblockCASE expresssionliststatementblockCASE ELSE expresssionliststatementblockEND CHOOSE其中,testexpression是测试表达式,expressionlist是判断表达式,statementblock是满足条件时执行的语句块,方括号表示该成分可以省略。判断表达式可以使用如下的形式:(1)用逗号风格的一组数据,例如:2,4,5(2)用TO表示一个区间范围,例如2TO15(3)用IS代表测试值,后跟关系操作符和比较值,例如:IS30(4)组合运用上述三种方法,并用逗号进行分隔。,4.8循环语句,1.Do Loop循环,DOLOOP是一个通用的循环语句。在DOLOOP语句中,DO表示循环开始,它有四种形式:1 DO UNTIL conditionstatementsLOOP其中,condition为循环条件,statements为循环体。DO UNTIL语句执行循环体的语句直到UNTIL后面的条件表达式结果为TRUE。如果在第一次条件表达式的值就为TRUE,则循环体中的语句不会被执行。2 DO WHILE conditionstatementsLOOPDO WHILE语句在WHILE后的表达式结果为TRUE时,执行循环体中的语句,如果第一次对表达式求值的结果即为FALSE,则循环体中的语句不会被执行。3 DOstatementsLOOP UNTIL conditionLOOP UNTIL语句在UNTIL后表达式结果为FALSE时执行循环体中的语句,直到表达式结果为TRUE时结束循环。循环体中的语句至少被执行一次。4 DOstatementsLOOP WHILE conditionLOOP WHILE语句当WHILE后面的条件表达式的结果为TRUE的时候,执行循环体中的语句,如果表达式计算结果为FALSE,循环结束。循环体至少被执行一次。,2、FORNEXT循环FOR.NEXT是一个计数循环语句。FOR.NEXT语句的一般格式为:FOR varname=start to end STEP increment statement NEXT 其中,varname 代表循环变量,start和end分别为初值和终值,increment为步长。在使用FOR NEXT语句的时候请注意以下几点:(1)步长可以是正值,也可以是负值,如果是正值,“超过”的意思是“大于”,如果是负值,“超过”的意思是“小于”。(2)步长的默认值是1。也就是说,省略“STEP increment”部分和使用“STEP 1”效果是一样的。(3)start和end不能超过varname数据类型的最大值,否则会造成溢出。,3.GoTo语句,GOTO语句是无条件转移语句。其语法格式如下:GOTO label 其中,label是语句的标号。程序中尽量避免使用goto语句。,4.Exit语句,在DO.LOOP或者FOR.NEXT语句的循环体当中,使用EXIT语句可以跳出循环,使循环提前结束。,5.Continue语句,在DOLOOP或者FORNEXT语句的循环体当中,遇到CONTINUE语句的时候,将不执行在CONTINUE后面和循环结束之前的语句,开始新一轮循环。,6、循环嵌套,循环嵌套就是把一个循环放在另一个循环的内部。,4.9返回语句与终止程序运行,1、RETURN语句RETURN语句用于从脚本中返回调用程序。其语法格式为:RETURN expression其中,expression代表该脚本的返回值。2、HALT语句HALT语句用于终止应用程序的运行。该语句的语法为:HALT CLOSE遇到不包含CLOSE选项的HALT语句时,应用程序立即终止。当包含CLOSE的时候,应用先执行CLOSE事件所对应的处理程序,然后再终止应用程序。,4.10嵌入式SQL,PoweScript提供了一整套嵌入式SQL语句,利用嵌入式SQL语句,能够在程序中灵活地操纵数据库。实际上,对这类语句,PB在将其发送到DBMS之前,并不做任何处理,而由DBMS完成相应操作,最后PB得到处理结果。SQL语句结束后加分号。在SQL语句中可以使用常量或合法的变量,但是使用变量前加个冒号,多个变量或常量之间中逗号分隔。例如:INSERT INFOEmployee(emp_nbr,emp_name)VALUES(:ls_empnbr,”李明”),4.10.1事务对象,PB或其开发的应用程序在访问数据库之前,首先应该建立与数据库的连接,这种连接是通过一种称为事务的对象完成。事务对象是一个传递应用程序与数据库之间信息的一个变量,它驻留在内存中,存储着用于连接数据库及从数据库得到反馈的所有信息,它定义了数据库与应用程序连接的参数。一个应用程序开始创建时,系统就自动定义一个名为SQLCA的默认全局变量。可以使用SQLCA连接数据库,也可以自己创建事务对象。PB应用程序与数据库进行通信的步骤为:1)设置事务对象的属性值;2)建立与数据库的连接;3)执行所需的数据库操作;4)断开与数据库的连接。,1、事务对象的属性,事务对象共有15个属性,可以分为两类:一类有10个,用来描述连接数据库的信息,如所连接的数据库的名称;另一类有5个,用来接受有关数据库或最近执行SQL语句的情况或状态,如数据库操作是否成功。1)AutoCommit:这是一个布尔型属性。它指定是否将数据库设置成自动提交所有事务。当它为TRUE时,由系统自动提交所有事务,当为FALSE时,用户必须自己在程序中设置事务管理,并在需要的时候对数据库进行提交事务。它的默认值是FALSE。2)DataBase:这是一个字符串类型的属性。它指定要连接的数据库名称。3)DBMS:这是一个字符串类型的属性。它指定应用程序所使用的数据库管理系统的名称,如ODBC。,4)DbParm:这是一个字符串类型的属性。它指定数据库联接参数。5)DBPass:这是一个字符串类型的属性。它描述的是用户连接数据库的密码。6)Lock:这是一个字符串类型的属性。它是数据库的保护级别,一般不必给出。7)LogID:这是一个字符串类型的属性。它用于指定登录数据库服务器所需的用户名或用户的ID。8)LogPass:这是一个字符串类型的属性。它用于指定登录数据库服务器所需的用户口令。9)Servername:这是一个字符串类型的属性。它用于指定数据库服务器的名称。10)UserID:这是一个字符串类型的属性。它指定了连接数据库的用户名或用户的ID。,11)SQLCode:这是一个长整型(Long)的属性。它用来指定最近一次数据库操作成功与否的代码,共有三个返回值:0表示操作成功;100表示操作成功,但没有返回数据;-1表示操作失败。用户可以从SQLDBCode或SQLErrText中得到具体详细的错误信息。12)SQLDBCode:这是一个长整型的属性。它包含了数据库错误代码,不同的数据库,错误代码不同,但大部分数据库厂商都用0表示操作成功,100表示成功但没有检索到数据,负数表示没有成功。13)SQLErrText:这是一个字符串类型的属性。它包含了数据库操作的错误信息。14)SQLNrows:这是一个长整型(Long)的属性。返回受操作影响的数据行数。15)SQLReturnData:这是一个字符串类型的属性。返回数据库特定信息。,下面是一个连接ODBC数据库所用的代码:/Profile ExerciseSQLCA.DBMS=ODBCSQLCA.AutoCommit=FalseSQLCA.DBParm=Connectstring=DSN=exercise这段脚本用来设置事务对象的属性,一般把它写在应用程序的Open事件中。,2、使用CONNECT建立与数据库的连接connect语句表示与数据库连接。它的语句结构是:connect using 事务对象名;若是使用sqlca,可以使用两种格式:connect;connect using sqlca;上面两条语句作用一样,也就是说使用系统默认的sqlca,语句中可以指明,也可以不指明,默认指sqlca。下面两条语句作用不同:connect;connect using sqluser;第一条使用默认的事务对象sqlca,第二条使用自定义的事务对象sqluser。,3、使用disconnet断开与数据库的连接disconnect语句表示断开与数据库的连接,它的语法结构是:disconnect using 事务对象名;使用方法同connect。,4、使用自定义事务对象一般情况下,使用系统提供的全局事务处理对象SQLCA就可以了,但有时需要连接多个数据库,这时只用一个SQLCA就不够了,需要用户自己定义事务对象,因为一个事务对象只能保存一个数据库的连接信息。自己定义事务对象步骤如下:(1)声明事务对象变量(2)创建事务对象(3)设置事务对象属性(4)通过事务对象连接数据库并进行操作(5)断开事务对象与数据库的连接(6)删除自定义事务对象,像变量一样,事务对象的作用域有局部的、实例的、全局的和共享的,声明的地方决定了事务对象的作用域,事务对象变量的类型是transaction。声明事务对象的格式为:transaction sqluser 上面只是声明了一个自定义的事务对象sqluser,声明事务对象实际上只是声明了一个指向事务对象的指针,在使用新声明的事务对象前,首先应该创建它。创建语句如下:如要创建事物对象sqluser,描述创建的语句为 sqluser=create transaction 自定义事务对象的属性设置可参考前面的SQLCA属性的设置,将SQLCA改为sqluser即可。创建了新的事务对象并设置了连接属性后,就可以像使用SQLCA事务对象相同的方法使用他了。连接数据库:CONNECT USING sqluser;创建的对象不再使用时,要删除:DESTROY sqluser,4.10.2 提交与回滚事务,1、commit:提交事务commit用来提交当前所做的一切事务,实际上是向数据库提交所有数据修改工作。语法:COMMIT USING TransactionObject2、rollback:取消事务rollback用来回滚当前的所有事务,实际上是取消自上次提交事务以来的这一段时间内所有数据修改工作。语法:ROLLBACK USING TransactionObject,4.10.3 常用的SQL语句,1、单行检索语句SELECT语法格式:SELECT FieldsListINTO VarListFROM TableListWHERE CriteriaUSING TransactionObject;2、插入语句INSERT语法格式:INSERT INTO TableName(FieldName,)VALUES(ValueOfField,)USING TransactionObject;3、删除语句DELETE语法格式:DELETE FROM TableNameWHERE CriteriaUSING TransactionObject;4、修改语句UPDATE语法格式:UPDATE TableNameSET FieldName=Value,FiledName=Value,WHERE CriteriaUSING TransactionObject;,4.10.4检查SQL语句执行情况,嵌入式SQL语句的执行有可能成功,也有可能失败。可以检查SQL语句的执行情况。每当执行一条SQL语句后,与该语句相关的事务对象的SQLCode属性都给出一个值,指示SQL语句的执行是否成功,SQLCode取值为:0最近一次SQL语句执行成功;-1最近一次SQL语句执行失败;100最近一次SQL语句没有返回数据。当SQLCode的值为-1时,事务对象的SQLDBCode属性中存放着数据库厂商提供的错误代码,事务对象的SQLErrText属性中存放这数据库厂商提供的错误信息,利用这两个属性,可以找出出错原因。,4.10.5读取多行数据,SELECT一次只能从数据库中检索一条记录,当需要读取多条记录时,需要使用游标进行操作。游标的运用过程是:1)声明游标;2)打开游标;3)使用Fetch读取一行数据;4)处理数据;5)判断是否读完所有数据,未读完重复执行3-5步;6)关闭游标。,4.10.6 粘贴SQL语句,PB提供了图形化生成SQL语句的工具SQL语句画板,利用它能够用交互方式定义SQL语句并将其粘贴到程序中。,4.11 常用函数,1 MessageBox()函数 2 Beep()函数3 数据类型转换函数4 数据类型检查函数 IS族函数5 运行其他应用程序的函数Run()6 设置输入焦点函数SetFocus()7 颜色函数RGB(),1 MessageBox()函数 messagebox()函数用来向用户显示出错、警告、提示及其他重要信息,并且在程序开发阶段被程序员用来显示程序运行状态及中间结果。该函数将在屏幕上显示一个窗口,用户在响应窗口后,程序才能继续运行下去。函数格式:si_button_pressed=messagebox(title,text,icon,buttons,default)Title指定显示窗口的标题,text指定显示在窗口的文本,icon指定显示在窗口中的图标,它是枚举类型,取值可以是:Information!、StopSign!、Exclamation!、Question!、None!。Button指定在窗口中显示哪些按钮,有效取值为:OK!、OKCancel!、YesNo!、YesNoCancel!、RetryCancel!、AbortRetryCancel!。Default指定哪个按钮是默认按钮,用数字1、2、3表示,默认值是1。,2 响铃函数Beep()Beep()函数让计算机发出声音,常用于提示用户发生了某种错误,语法格式为:Beep(n)N指明响铃几次。如果n的值大于10,计算机也只响10次。3 数据类型转换函数 类型转换函数用来将一种数据类型转换为另一种数据类型。integer(string):将字符串转换成整型。long(string):将字符串转换成长整型。real(string):将字符串转换成实型。double(string):将字符串转换成双精度型。dec(string):将字符串转换成十进制数。string(number,format):将数值按一定格式转换成字符串。例如:String(amount,”$#,#0.00”),4 数据类型检查函数 数据类型检查函数以IS开头。IS函数的返回值是布尔类型的,其值只有两个:true或false。IS族函数是一类函数。isnumber(String)检查字符串变量的内容是否是数值。isdate(String)检查字符串变量的内容是否是有效日期。istime(String)检查字符串变量的内容是否是有效时间。isnull(any)函数检查任意类型变量的内容是否为空。,5 运行其他应用程序的Run()Run函数被用于在Pb中运行其他的Windows应用程序,如计算器、记事本及其他用户应用程序等。格式:Run(string,windowstate)其中,参数string是个字符串,它指明要运行程序的文件名,当然,string也可以包括路径、扩展名及程序运行参数,扩展名可以是EXE,也可以是COM、BAT或PIF,默认情况下,以EXE作为程序扩展名;参数windowstate是个枚举类型的变量,用以指明程序运行时的窗口状态,有效值为:Maximized!、Minimized!、Normal!。例:run(“C:windowscalc.exe,normal!)6 设置输入焦点函数SetFocus()SetFocus()函数是个对象函数,使用时必须通过对象名指定操作的对象,其作用是让对象得到输入焦点,而不管原先输入焦点在哪里。语法格式:Objectname.SetFocus(),7 颜色函数RGB()PB使用长整数表示颜色。可以直接把表示颜色的长整数赋给对象或控件的颜色属性,也可以用RGB()函数把红、绿、蓝三色分量组合成一个表示颜色的长整数。例如,RGB(0,255,0)表示绿色。语法格式:RGB(red,green,blue)其中,red表示颜色中的红色分量强度,有效值在0到255之间,green表示颜色中的绿色分量强度,有效值在0到255之间,blue表示颜色中的蓝色分量强度,有效值在0到255之间。数值越小,亮度越低;数值越大,亮度越高。,4.12创建自定义函数和结构,像其他程序设计语言一样,Powerbuilder给出了几百个功能强大的标准函数,为应用程序提供了强大的方便。但由于应用程序的千差万别,标准函数仍然满足不了要求,所以还要需要创建符合自己要求的函数。PowerBuilder的函数分两类:全局函数和对象函数。全局函数独立于任何对象,在整个应用程序中都能使用,而对象函数根据定义可能在整个程序中使用,也可能只在对象内部使用。结构是组织相关变量的一种方法。,1、创建自定义全局函数,选择工具栏的new图标,在出现的new窗口中,选择PB Object页中选择Fuction项,单击ok按钮。,自定义全局函数的命名一般用f_作为前缀。Access指定函数的访问范围;Return Type指定函数返回值类型,Function Name指定新建函数的名称。函数的参数传递方式有以下3种:Value:值传递讲实际参数的值传递给函数参数;Reference:地址传递把实际参数的地址传递给函数。此时,如果函数修改了形式参数的值,那么实际参数的值也就被修改了。Readonly:地址传递把实际参数的地址传递给函数。不过不允许修改参数的值。,2、修改自定义全局函数,选择工具栏的open图标,在出现的open窗口中,在objects of type下拉列表中选择functions,在libraries中选择函数所在库,选择要修改的函数,单击ok按钮。,3、创建对象函数对象函数一般只能在该对象内使用,当对象正在打开且该函数的access属性为public时,其他对象的程序可以调用该函数,不过需在函数前加对象名。定义对象函数和定义全局函数几乎一样,不同之处是定义对象函数可以规定该函数的访问属性access,而全局函数不可以。access默认值为public。访问属性access有3个选择:1)public:该函数在整个程序中都可访问;2)private:该函数只能在当前对象的程序中使用,不能在该对象的后代的程序中使用;3)protected:该函数只能在当前对象的程序以及该对象的后代的程序中使用。,对象函数的命名规则一般与对象有关,如应用对象Applacation Object的函数一般以af_作为前缀,窗口对象window的函数一般以wf_作为前缀,选单对象memu的函数一般以mf_作为前缀,用户自定义对象的函数一般以uf_作为前缀。便于程序的维护。定义好的对象函数和标准函数一样使用。不同之处是在其他对象的程序中调用时,应在函数名前加上函数所在的对象名,且对相应处于打开状态。可以修改创建的自定义对象函数。首先打开自定义函数所在的对象,然后打开script代码编辑窗口,先选择functions,再选择要修改的函数。对象函数的返回值的类型、参数名、个数及类型都能随时更改。,2、创建自定义结构,结构是一个或多个相关变量的集合,这些变量可以具有相同的数据类型,也可以具有不同的数据类型。在其他语言中,有的称为记录。结构里的所有元素既可以作为一个整体引用,也可以分别引用其中的元素。在pb中,就像函数一样,结构也有两种类型。(1)全局结构:这种结构与具体对象无关,在程序中的任何地方都能使用。(2)对象层结构:这种结构总是与特定的窗口、选单、用户对象等相关联,是对象的一部分,可以在该对象中使用,也可以在其他对象中使用(当结构所在的对象被打开时)。结构名一般以s_作为前缀。定义了一个结构后相当于定义了一种新的数据类型,要使用某结构,应该先声明一个该结构类型的实例变量,然后再引用该结构的变量。例如:S_studnet lss_studentLss_student.name=张辉,

    注意事项

    本文(第4章PowerScript编程语言.ppt)为本站会员(sccc)主动上传,三一办公仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知三一办公(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    备案号:宁ICP备20000045号-2

    经营许可证:宁B2-20210002

    宁公网安备 64010402000987号

    三一办公
    收起
    展开