【文档说明】第4章PowerScript编程语言课件.ppt,共(68)页,487.000 KB,由小橙橙上传
转载请保留链接:https://www.ichengzhen.cn/view-45461.html
以下为本文档部分文字说明:
第4章PowerScript编程语言第4章PowerScript编程语言教学目标教学重点教学过程第4章PowerScript编程语言教学目标•熟悉和掌握PowerBuilder9.0的基本语法规则•对PowerBuilder9.0有初步的认识和了解,并能够编写一些简单
的小程序第4章PowerScript编程语言教学重点•标识符命名规则•注释语句•基本控制语句•创建与释放对象实例•嵌入式SQL•常用函数•创建自定义函数和结构第4章PowerScript编程语言教学过程•语言特点•Script编程视图的使用•语言基
础•数据类型与变量说明•操作符•创建与释放对象实例•条件语句•循环语句•返回语句与终止程序运行•嵌入式SQL•常用函数•创建自定义函数和结构第4章PowerScript编程语言第4章PowerScript编程语言4.1语言特点•PowerScript是一种高级的、结构
化的第四代(4GL)编程语言,它的语言成分和大多数编程语言很相似,但与众不同之处在于它提供了一套完整的嵌入式SQL语句,开发人员能够像使用其它语言成分那样使用他们,这就大大增强了程序操纵和访问数据库的能力。•Powe
rScript的控制语句以及嵌入的SQL语句利用可视化工具可以粘贴到程序当中,而不用逐字从键盘输入,提高了编程效率和输入的正确率。丰富的数据类型和众多的函数进一步提高了PowerBuilder的适应性
和灵活性。第4章PowerScript编程语言4.2Script编程视图的使用PowerBuilder编写代码的环境称为Script编程视图。在Script编程视图中,可以进行变量的定义、查看事件及函数列表、对所选择的事件进行编程等工作。在这个编辑器中,不同的语法
成分用不同的颜色区分,除了具备复制、剪切、粘贴文本等常用功能外,还可以在PainterBar中选择相应的粘贴功能,可以将PowerBuilder内置函数、自定义函数、外部函数、SQL语句、流控制语句、全局变量、共享变量、当前应用中窗口名、当前的对象名等内容粘贴到程序
的插入点位置。第4章PowerScript编程语言4.2.1编辑代码1、选择文本2、删除、剪切、复制、粘贴文本3、移动文本4、撤销操作5、重做6、查找和替换文本7、加注释和去掉注释第4章PowerScript编程
语言4.2.2强大的粘贴功能1、粘贴函数2、粘贴流控制语句4.2.3编译代码第4章PowerScript编程语言4.3语言基础4.3.1断行、续行与多条语句回车键换行续行符:用“&”做为续行符。它使一条语句可以写在两行上,但要注意不能在保留字
或变量名中间加续行符。一行写多条语句,语句间用分号分隔。4.3.2注释行注释://块注释:/*开始,*/结束。第4章PowerScript编程语言4.3.3标识符标识符是程序中用来代表变量、标号、函数、窗口、控件、菜单、对象等名称的符号。PowerBuilder9.0中标识符的命
名规则如下:(1)必须以字母或下划线开头。(2)其余字符可以是字母、数字和如下的特殊字符:短横线“-”、下划线“_”、美元符号“$”,号码符号“#”和百分符号“%”。(3)最长40个字符,且中间不能插入空格。(4)多数情况下不区分大小写,但要注意使用大小写的一致性,便于阅读和维护程序
。(5)保留字不能做标识符。第4章PowerScript编程语言4.3.4特殊字符字符串中可以包含特殊的ASCII码字符,它们不能使用常规的输入方法直接输入,需要使用其他字符来代替。常用的特殊字符如下表:字符功能~n新行~t制表符~r回车~v垂直制表符~f换
行~b退格~‟单引号~”双引号~~波浪号~000到~255十进制形式的ASCII码所代表的字符~h00到~hFF十六进制的ASCII码所代表的字符~o00到~o377八进制的ASCII码所代表的字符。第4章PowerScript编程语言空值
(null)是与数据库交换数据时使用的一种特殊值。它代表未定义或是不可知。变量被赋予空值的途径有两条:(1)从数据库中读到空值。(2)使用SetNull()函数将变量设置为空值。4.3.5空值(null)第4章
PowerScript编程语言4.3.6对象、属性、函数和事件的引用方法访问对象属性的格式为:对象名.对象属性程序中访问对象函数与事件的格式:[objectname.][type][calltype][when]
functionname([argumentlist])其中objectname是对象名。Type取值为FUNCTION或EVENT,用于指明是访问函数还是事件,默认为FUNCTION。Calltype用于指明PowerBuilder查找函数
的时机,有效取值为:STATIC(默认值):编译时查找函数,若不存在,产生编译错误;DYNAMIC:程序运行时查找函数,若不存在,产生运行错误。When用于指明函数或事件是立即执行还是当前程序段执行完毕后执行,取值为:TRIGGER(默认值):立即执行;POST:当前程序段执行完毕后执行;Fu
nctionname指明调用的函数或事件名称;Argumentlist给出函数或事件的参数。第4章PowerScript编程语言4.3.7代词1)This代词This代词代表窗口、用户对象、菜单、应用对象或控件本身。2)Parent代词Parent代词可以用在窗口控件、用户
定制的对象、菜单脚本中。在窗口控件中使用parent时,parent表示包含该控件的窗口。在菜单项脚本中使用parent,表示当前菜单项的上一级菜单项。3)ParentWindow代词ParentWindow代词只能在菜单脚本中使用,它代表运行时菜单所在的窗口
。4)Super代词在编写控件或者对象的子对象的程序时,可以调用祖先的程序,用户可以直接使用祖先对象的名称调用它们,也可以使用Super来引用直接双亲。第4章PowerScript编程语言4.3.8保留字保留字是PowerBuilder内部使用的一组单词,有特殊的含义,不能再把他们
用作标识符。4.3.9事件处理程序的编写环境第4章PowerScript编程语言4.4数据类型与变量说明与其它编程语言类似,PowerScript提供了丰富的数据类型,主要包括标准数据类型、系统对象数据类型、任意数据类型和枚举类型。第4章PowerScript编程语言4.4.1标准数据类型
Blob:二进制大对象,用于存储大量数据,例如图像、大文本等。boolean(布尔型),布尔变量有两个值:true和false,分别表示真和假。创建布尔变量时,其初始值是false。char或character(字符型),该类型变量用于存储一个AS
CII字符。date(日期型),日期包含年、月、日,年月日之间用连接符(-)连接。Datetime(日期时间型),仅用于访问数据库的Datetime型数据。Decimal(带符号十进制数),最高精度为18位。Double(带符号浮点数),15位有效数字,范围从2.2E-3
08到1.7E+308。real(实型),精度6位,范围从1.17E-38到3.4E+38,实型变量被创建时的初始值是0。第4章PowerScript编程语言integer或int(整型),整数的取值范围是从-32768到32767。L
ong(长整型),32位带符号整数。string(字符串型),字符串要用引号(单引号或双引号)括起来。字符串变量中可以包含字母、数字或符号,其变量长度在0到65536之间,字符串常量最大长度可达1024。time(时间型),包含小时、分钟、秒,小时
、分钟、秒之间用冒号(:)分隔。UnsignedInteger或Uint(无符号整型),16位无符号整数。Unsignedlong,32位无符号整数。还有any类型。第4章PowerScript编程语言4.4.2系统对象数据类型在Pb中,窗口、选单、各种控件都是系统对象,
每一种系统对象实际上都是定义在Pb内部的一种数据类型。通常我们不必把这些对象当作数据类型来考虑,而只需要通过工具栏或选单定义他们即可,因为他们都是可视化的对象。有些情况下,需要动态地处理窗口、选单或控件等系统对象时,就需要定义系统对象数据类型。例如:windowmywin//说明
窗口变量可以使用浏览器Browser查看PB所支持的系统对象。第4章PowerScript编程语言4.4.3枚举类型枚举类型是PB定义的特殊常量,常用于对象或控件的属性、系统函数的参数等。但在Powe
rScript中我们不能定义自己的枚举类型,而只能按系统要求使用它。枚举类型实际上是一组值,每个值都以英文单词开始,以感叹号!结束,例如yesno!。例如:将单行文本编辑器的对齐方式设置为居中对齐:Sle_
1.aligment=Center!第4章PowerScript编程语言4.4.4变量的声明变量(variable)是在程序执行时其值可变的量。在Pb中,变量在使用前,要先予以说明。系统预定义的5个全局变量除外(
SQLCA、SQLDA、SQLSA、Error、Message)。1.普通变量声明语法结构:数据类型变量名[=初值][,变量名=[初值]][,…]其中方括号中的内容是可选项。变量未赋初值,系统会自动赋给变量默认值。如:数值型
变量的默认初值是0。注意:变量的初值是在编译时给定的。如:datedd1,dd2=today()dd1=today()其中dd1没有被初始化,但dd2被初始化成系统日期。第4章PowerScript编程语言2.Blob型变量的声明语法:Blob[{大小}
]变量名“大小”指明Blob变量以字节为单位的长度,默认该项时,默认长度为0,且系统会根据实际数据自动调整其长度。例如:Blob{100}ib_Emp_picture//声明一个长度为100字节的blob性实例变量Blob变量不能赋初值。3.Dec变量的声明语法:dec[{精
度}]变量名=[初值]其中精度是整数,指定小数点后的数字位数,若未指定,则以赋值时给定的精度为准。例如:Dec{4}lc_rate1//声明小数点后4位数字的变量第4章PowerScript编程语言4.4.5变量数组数组代表一系
列具有相同类型的变量,他们用一个变量名,通过下标访问数组中的每个元素。例如:Integerperson[30]//声明整型数组person,他有30个元素,下标从1到30Integernum[3to10]//下标从3到10,共8个元素
Reallr_Array[10,10]//声明一个二维数组,共10*10个元素第4章PowerScript编程语言4.4.6变量的作用域变量的作用域就是变量使用的范围。根据变量的作用域可将变量分为四种类型:全局变量Global、实例变量Ins
tance、共享变量Shared、局部变量Local。1.全局变量的作用域最大,它在应用程序的任何地方都可以使用。2.实例变量是某个特定对象的实例化。可以在应用对象、窗口对象、用户对象或菜单对象的Sc
ript编辑器中定义它,他的作用范围不仅在所在对象的全部事件及函数,而且包括该对象的所有控件和函数。若在定义范围之外使用它,则要通过点符号(.)完成。3.共享变量并不常用,只在特定情况下才会用到。共享变量是静态变量。在一个对象内定义,可以在该对象内部的任何地方被使用。同一个类的所有实例共享这种变量
。共享变量在对象关闭和再次打开的时候仍然保持它自己的值。4.局部变量只能在某程序段或函数内部有效,可以在过程、代码、函数内部声明和使用局部变量,但在声明局部变量的范围之外就不能使用局部变量,在不同的函数内部或事件脚本范围内局部变量可以重名
,不会引起混乱。5.变量的优先级四种变量的优先级由高到低依次为:局部变量→实例变量→全局变量→共享变量。第4章PowerScript编程语言4.4.7变量的命名规范PowerScript对变量的命名约定
了命名规范,即变量名中包含标识变量作用域和数据类型的代词。变量的命名规范见下表:第4章PowerScript编程语言4.4.8常量常量就是在程序运行过程中不能改变的量,声明常量就是在声明的常量标识符的前面加上关键字constant就可以了。常量声
明语法格式为:constant数据类型常量名=值例如,constantrealpi=3.14//声明常量常量在声明时必须赋值。声明常量可以提高程序的可读性,使程序易于修改。第4章PowerScript编程语言4.5操作符PowerScript
支持的运算符可分为四种类型:算术运算符、关系运算符、逻辑运算符和连接运算符。第4章PowerScript编程语言1、算术操作符算术操作符有5个:+、-、*、/、^,此外PowerScript还提供了一组扩展的算术操作运算符(
与C语言中使用的算术操作符相同):++、--、+=、-=、/=、*=、^=。第4章PowerScript编程语言2、关系操作符关系操作符用来对相同类型的量进行大小比较运算,比较的结果为TRUE、FALSE、NULL三者之一。常用于条件语句和循环语句。关系操作
符有:>=、<=、<>、<、>、=。第4章PowerScript编程语言3、逻辑操作符逻辑操作符用来对布尔型的量进行运算,结果是True或False。有三个逻辑操作符:not、and、or。第4章PowerScript编程语言4
、连接操作符连接操作符只有一个,就是符号“+”,用于把两个String型或Blob型变量的内容连接在一起,形成新的字符串或Blob型数据。例:test=„中国’+‟北京’第4章PowerScript编程语言在表达式中,运算按操作符的特定次序进行,这种次序就是操作符的优先级。当然
,使用括号可以改变运算次序。优先级顺序如下:()+(正号)、-(负号)、++、--^*、/+、-=、>、<、>=、<=、<>NOTANDOR5、操作符的优先级第4章PowerScript编程语言创建与释放对象实例1、创建对象实例对非可视的系统对象
类型,使用CREATE语句创建对象实例。语法一:objectvariable=CREATEobjecttype例如:transacrionDBTrans//声明事务对象变量DBTransDBTrans=CREATEtransaction//创建事务对象实例DBTran
s.DBMS=“ODBC”第4章PowerScript编程语言2、释放对象实例用create语句创建的对象实例在使用完毕后应该及时释放,以使对象实例占据的内存资源可以重新使用。释放对象实例的语句是DESTROY,释放之后,该对
象实例不能再被引用。语法:DESTROYobjectvariable例如:DESTROYDBTrans3、收集废弃对象收集废弃对象是指PB从内存中把失去引用的对象删除,因为应用程序已经无法使用这些对象,白白消耗系统资源。GarbageCollect()函数
立即执行收集废弃对象功能,应用程序执行该函数时,PB识别未用对象并删除该对象及其类定义所占用的内存空间。第4章PowerScript编程语言4.7条件语句1、IF语句IF…THEN语句是一个选择分支结构语句。它有单行和多行两种格式。单行IF…THEN语句的一般格式为
:IFconditionTHENaction1[ELSEaction2]其中condition是一个条件表达式,action1和action2是一条语句。如果condition结果为TRUE,执行action1语句,否则执行action2语句。多
行IF…THEN语句的一般格式为:IFcondition1THENaction1[ELSEIFcondition2THENaction2…][ELSEaction3]ENDIF其中condition1和condition2是条件表达式,action1、a
ction2和action3是一条或者多条语句。第4章PowerScript编程语言2、CHOOSECASE语句CHOOSECASE语句根据测试表达式的值选择不同操作,语法格式:CHOOSECASEtestexpress
ionCASEexpresssionliststatementblock[CASEexpresssionliststatementblock][CASEELSEexpresssionliststatementblock]ENDCH
OOSE其中,testexpression是测试表达式,expressionlist是判断表达式,statementblock是满足条件时执行的语句块,方括号表示该成分可以省略。判断表达式可以使用如下的形式:(1)用逗号风格的一组数据,例如:2,4,5(2)用TO表示一个区间范围,例如2TO15(
3)用IS代表测试值,后跟关系操作符和比较值,例如:IS>30(4)组合运用上述三种方法,并用逗号进行分隔。第4章PowerScript编程语言4.8循环语句1.DoLoop循环DO…LOOP是一个通用的循环语句。在DO…LOOP语句中,DO表示循
环开始,它有四种形式:1.DOUNTILconditionstatementsLOOP其中,condition为循环条件,statements为循环体。DOUNTIL语句执行循环体的语句直到UNTIL后面的条件表达式结果为TRUE。如果在第一次
条件表达式的值就为TRUE,则循环体中的语句不会被执行。2.DOWHILEconditionstatementsLOOPDOWHILE语句在WHILE后的表达式结果为TRUE时,执行循环体中的语句,如果第一次对表达式求值的结果即为FALSE,则循环体中的语句不会被执行。3.DOstate
mentsLOOPUNTILconditionLOOPUNTIL语句在UNTIL后表达式结果为FALSE时执行循环体中的语句,直到表达式结果为TRUE时结束循环。循环体中的语句至少被执行一次。4.DOstatement
sLOOPWHILEconditionLOOPWHILE语句当WHILE后面的条件表达式的结果为TRUE的时候,执行循环体中的语句,如果表达式计算结果为FALSE,循环结束。循环体至少被执行一次。第4章PowerScript编程语言2、FOR…NEXT循环FOR...NE
XT是一个计数循环语句。FOR...NEXT语句的一般格式为:FORvarname=starttoend[STEPincrement]statementNEXT其中,varname代表循环变量,start和end分别
为初值和终值,increment为步长。在使用FORNEXT语句的时候请注意以下几点:(1)步长可以是正值,也可以是负值,如果是正值,“超过”的意思是“大于”,如果是负值,“超过”的意思是“小于”。(2)步长的默认值是1。也就是说,省略“STEPincrement”
部分和使用“STEP1”效果是一样的。(3)start和end不能超过varname数据类型的最大值,否则会造成溢出。第4章PowerScript编程语言3.GoTo语句GOTO语句是无条件转移语句。其语法格式如下:GOTOlabel其中,labe
l是语句的标号。程序中尽量避免使用goto语句。第4章PowerScript编程语言4.Exit语句在DO...LOOP或者FOR...NEXT语句的循环体当中,使用EXIT语句可以跳出循环,使循环提前结束。5.Con
tinue语句在DO…LOOP或者FOR…NEXT语句的循环体当中,遇到CONTINUE语句的时候,将不执行在CONTINUE后面和循环结束之前的语句,开始新一轮循环。6、循环嵌套循环嵌套就是把一个循环放在另一个循环的内部。第4章PowerScript编程语言4.9返回语句与终止程序运行1、RET
URN语句RETURN语句用于从脚本中返回调用程序。其语法格式为:RETURN[expression]其中,expression代表该脚本的返回值。2、HALT语句HALT语句用于终止应用程序的运行。该语句的语法为:HALT[CLOSE]遇到不包含CLOSE选项的HALT语句时,应用程序立即终
止。当包含CLOSE的时候,应用先执行CLOSE事件所对应的处理程序,然后再终止应用程序。第4章PowerScript编程语言4.10嵌入式SQLPoweScript提供了一整套嵌入式SQL语句,利用嵌入式SQL
语句,能够在程序中灵活地操纵数据库。实际上,对这类语句,PB在将其发送到DBMS之前,并不做任何处理,而由DBMS完成相应操作,最后PB得到处理结果。SQL语句结束后加分号。在SQL语句中可以使用常量或合法的变量,但是使用变量前加
个冒号,多个变量或常量之间中逗号分隔。例如:INSERTINFOEmployee(emp_nbr,emp_name)VALUES(:ls_empnbr,”李明”)第4章PowerScript编程语言4.10.1事务对象PB或其开发的应用程序在访问数据库之
前,首先应该建立与数据库的连接,这种连接是通过一种称为事务的对象完成。事务对象是一个传递应用程序与数据库之间信息的一个变量,它驻留在内存中,存储着用于连接数据库及从数据库得到反馈的所有信息,它定义了数据库与应用程序连接
的参数。一个应用程序开始创建时,系统就自动定义一个名为SQLCA的默认全局变量。可以使用SQLCA连接数据库,也可以自己创建事务对象。PB应用程序与数据库进行通信的步骤为:1)设置事务对象的属性值;2)建立与数据库的连接;3)执行所需的数据库操作;
4)断开与数据库的连接。第4章PowerScript编程语言1、事务对象的属性事务对象共有15个属性,可以分为两类:一类有10个,用来描述连接数据库的信息,如所连接的数据库的名称;另一类有5个,用来接受有关数据库或最近执行SQL语句的情况或状态,如数据库操作是否成
功。1)AutoCommit:这是一个布尔型属性。它指定是否将数据库设置成自动提交所有事务。当它为TRUE时,由系统自动提交所有事务,当为FALSE时,用户必须自己在程序中设置事务管理,并在需要的时候对数据库进行
提交事务。它的默认值是FALSE。2)DataBase:这是一个字符串类型的属性。它指定要连接的数据库名称。3)DBMS:这是一个字符串类型的属性。它指定应用程序所使用的数据库管理系统的名称,如ODBC。第4章PowerScript编程语言4)DbParm:这是一个字符串类型的属性。它指定数据库
联接参数。5)DBPass:这是一个字符串类型的属性。它描述的是用户连接数据库的密码。6)Lock:这是一个字符串类型的属性。它是数据库的保护级别,一般不必给出。7)LogID:这是一个字符串类型的属性。它用于指定登录数据库服务器所需的用户名或用户的ID。8
)LogPass:这是一个字符串类型的属性。它用于指定登录数据库服务器所需的用户口令。9)Servername:这是一个字符串类型的属性。它用于指定数据库服务器的名称。10)UserID:这是一个字符串类型的属性。它指定了连接数据库的用户名或用户的ID
。第4章PowerScript编程语言11)SQLCode:这是一个长整型(Long)的属性。它用来指定最近一次数据库操作成功与否的代码,共有三个返回值:0表示操作成功;100表示操作成功,但没有返回数据;-1表示操作失败。用户可
以从SQLDBCode或SQLErrText中得到具体详细的错误信息。12)SQLDBCode:这是一个长整型的属性。它包含了数据库错误代码,不同的数据库,错误代码不同,但大部分数据库厂商都用0表示操作成功,100表示成功但没有检索到数据,负数表示没有成功。
13)SQLErrText:这是一个字符串类型的属性。它包含了数据库操作的错误信息。14)SQLNrows:这是一个长整型(Long)的属性。返回受操作影响的数据行数。15)SQLReturnData:这是一个字符串类型的属性。返回数据库特定信息。第4章PowerScript编程语言下面是一个连接
ODBC数据库所用的代码://ProSQLCA.DBMS="ODBC"SQLCA.AutoCommit=FalseSQLCA.DBParm="Connectstring='DSN=exercise'"这段脚本用
来设置事务对象的属性,一般把它写在应用程序的Open事件中。第4章PowerScript编程语言2、使用CONNECT建立与数据库的连接connect语句表示与数据库连接。它的语句结构是:connect[usi
ng事务对象名];若是使用sqlca,可以使用两种格式:connect;connectusingsqlca;上面两条语句作用一样,也就是说使用系统默认的sqlca,语句中可以指明,也可以不指明,默认指sqlca。下面两条语句
作用不同:connect;connectusingsqluser;第一条使用默认的事务对象sqlca,第二条使用自定义的事务对象sqluser。第4章PowerScript编程语言3、使用disconnet断开与数据库的连接disconnect
语句表示断开与数据库的连接,它的语法结构是:disconnect[using事务对象名];使用方法同connect。第4章PowerScript编程语言4、使用自定义事务对象一般情况下,使用系统提供的全局事务处理对象SQLCA就可以了,但有时需要连接多个数据库,这时只用一个SQLCA就不够了
,需要用户自己定义事务对象,因为一个事务对象只能保存一个数据库的连接信息。自己定义事务对象步骤如下:(1)声明事务对象变量(2)创建事务对象(3)设置事务对象属性(4)通过事务对象连接数据库并进行操作(5)断开事务对象与数据库的连接(6)删除自定义事务对象第4章PowerScript编程语
言像变量一样,事务对象的作用域有局部的、实例的、全局的和共享的,声明的地方决定了事务对象的作用域,事务对象变量的类型是transaction。声明事务对象的格式为:transactionsqluser上面只是声明了一个自定义的事务对象sqluser,声明事务对象实际上只是声明了一个指向事务对象的指
针,在使用新声明的事务对象前,首先应该创建它。创建语句如下:如要创建事物对象sqluser,描述创建的语句为sqluser=createtransaction自定义事务对象的属性设置可参考前面的SQLCA属性的设置,将SQLCA改为sqluser即可。创建了新的事务对象并设置了连接属性后,就
可以像使用SQLCA事务对象相同的方法使用他了。连接数据库:CONNECTUSINGsqluser;创建的对象不再使用时,要删除:DESTROYsqluser第4章PowerScript编程语言4.10.2提交与回滚事务1、commit:提交事务commit用来提交当前所做的一
切事务,实际上是向数据库提交所有数据修改工作。语法:COMMIT[USINGTransactionObject]2、rollback:取消事务rollback用来回滚当前的所有事务,实际上是取消自上次提交事务以来的这一段时间内所有数据修改工作。语法:ROLLBACK[USIN
GTransactionObject]第4章PowerScript编程语言4.10.3常用的SQL语句1、单行检索语句SELECT语法格式:SELECTFieldsListINTOVarListFROMTableList
WHERECriteria[USINGTransactionObject];2、插入语句INSERT语法格式:INSERTINTOTableName(FieldName[,…])VALUES(ValueOfField[,…])
[USINGTransactionObject];3、删除语句DELETE语法格式:DELETEFROMTableNameWHERECriteria[USINGTransactionObject];4、修改语句UPDATE语法
格式:UPDATETableNameSETFieldName=Value[,[,…]]WHERECriteria[USINGTransactionObject];第4章PowerScript编程语言4.10.4检查SQL语句执行情况
嵌入式SQL语句的执行有可能成功,也有可能失败。可以检查SQL语句的执行情况。每当执行一条SQL语句后,与该语句相关的事务对象的SQLCode属性都给出一个值,指示SQL语句的执行是否成功,SQLCode
取值为:0——最近一次SQL语句执行成功;-1——最近一次SQL语句执行失败;100——最近一次SQL语句没有返回数据。当SQLCode的值为-1时,事务对象的SQLDBCode属性中存放着数据库厂商提供的错误代码,事务对象的SQLErrText属性中存放这数据库厂商提供的错误信息,利用这两
个属性,可以找出出错原因。第4章PowerScript编程语言4.10.5读取多行数据SELECT一次只能从数据库中检索一条记录,当需要读取多条记录时,需要使用游标进行操作。游标的运用过程是:1)声明游标;2)打开游标;3)使用Fetch读取一行数据;4)处理数据;5)判断是否
读完所有数据,未读完重复执行3-5步;6)关闭游标。第4章PowerScript编程语言4.10.6粘贴SQL语句PB提供了图形化生成SQL语句的工具——SQL语句画板,利用它能够用交互方式定义SQL语句并将其粘贴到程序中。第4章PowerScript编程语言4.11常用函数1Mes
sageBox()函数2Beep()函数3数据类型转换函数4数据类型检查函数IS族函数5运行其他应用程序的函数Run()6设置输入焦点函数SetFocus()7颜色函数RGB()第4章PowerScript编程语言1MessageBox()函数message
box()函数用来向用户显示出错、警告、提示及其他重要信息,并且在程序开发阶段被程序员用来显示程序运行状态及中间结果。该函数将在屏幕上显示一个窗口,用户在响应窗口后,程序才能继续运行下去。函数格式:si_button_pressed=messagebox(title,text[,ic
on,[buttons[,default]]])Title指定显示窗口的标题,text指定显示在窗口的文本,icon指定显示在窗口中的图标,它是枚举类型,取值可以是:Information!、StopSign!、E
xclamation!、Question!、None!。Button指定在窗口中显示哪些按钮,有效取值为:OK!、OKCancel!、YesNo!、YesNoCancel!、RetryCancel!、AbortRetryCancel!。Default指定哪个按钮是默认按钮,用数字1、2
、3表示,默认值是1。第4章PowerScript编程语言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章PowerScript编程语
言4数据类型检查函数数据类型检查函数以IS开头。IS函数的返回值是布尔类型的,其值只有两个:true或false。IS族函数是一类函数。isnumber(String)检查字符串变量的内容是否是数值。isdate(String)检查字符串变量的内容是否是有效日期。istime(Strin
g)检查字符串变量的内容是否是有效时间。isnull(any)函数检查任意类型变量的内容是否为空。第4章PowerScript编程语言5运行其他应用程序的Run()Run函数被用于在Pb中运行其他的Windows应用程序,如计算器、记事
本及其他用户应用程序等。格式:Run(string,{,windowstate})其中,参数string是个字符串,它指明要运行程序的文件名,当然,string也可以包括路径、扩展名及程序运行参数,扩展名可以是EXE,也可以是COM、BAT或
PIF,默认情况下,以EXE作为程序扩展名;参数windowstate是个枚举类型的变量,用以指明程序运行时的窗口状态,有效值为:Maximized!、Minimized!、Normal!。例:run(“C:\windo
ws\calc.exe‟,normal!)6设置输入焦点函数SetFocus()SetFocus()函数是个对象函数,使用时必须通过对象名指定操作的对象,其作用是让对象得到输入焦点,而不管原先输入焦点在
哪里。语法格式:Objectname.SetFocus()第4章PowerScript编程语言7颜色函数RGB()PB使用长整数表示颜色。可以直接把表示颜色的长整数赋给对象或控件的颜色属性,也可以用RGB()函数把红、绿、蓝三色分量组合成一个表示颜色的长整数。例如,RGB(0,255,0)表
示绿色。语法格式:RGB(red,green,blue)其中,red表示颜色中的红色分量强度,有效值在0到255之间,green表示颜色中的绿色分量强度,有效值在0到255之间,blue表示颜色中的蓝色分量强度,有效值在0到255之间。数值越小,亮度越低;数值越大,
亮度越高。第4章PowerScript编程语言4.12创建自定义函数和结构像其他程序设计语言一样,Powerbuilder给出了几百个功能强大的标准函数,为应用程序提供了强大的方便。但由于应用程序的千差万别,标准函数仍然满足不了要求,所以还要需要创建
符合自己要求的函数。PowerBuilder的函数分两类:全局函数和对象函数。全局函数独立于任何对象,在整个应用程序中都能使用,而对象函数根据定义可能在整个程序中使用,也可能只在对象内部使用。结构是组织相关变量的一种方法。第4章Pow
erScript编程语言1、创建自定义全局函数选择工具栏的new图标,在出现的new窗口中,选择PBObject页中选择Fuction项,单击ok按钮。第4章PowerScript编程语言自定义全局函数的命名一般用f_作为前缀。Access指定函数的访问范围;Retu
rnType指定函数返回值类型,FunctionName指定新建函数的名称。函数的参数传递方式有以下3种:Value:值传递——讲实际参数的值传递给函数参数;Reference:地址传递——把实际参数的地址传递给函数。此时,如果函数修改了形式参数的值,那
么实际参数的值也就被修改了。Readonly:地址传递——把实际参数的地址传递给函数。不过不允许修改参数的值。第4章PowerScript编程语言•2、修改自定义全局函数选择工具栏的open图标,在出现的open窗口中,在objectsoftype下拉列表中选择functions,在librar
ies中选择函数所在库,选择要修改的函数,单击ok按钮。第4章PowerScript编程语言3、创建对象函数对象函数一般只能在该对象内使用,当对象正在打开且该函数的access属性为public时,其他对象的程序可以调用该函数,不过需在函
数前加对象名。定义对象函数和定义全局函数几乎一样,不同之处是定义对象函数可以规定该函数的访问属性access,而全局函数不可以。access默认值为public。访问属性access有3个选择:1)public:该函数在整个程序中都可访问;2)pri
vate:该函数只能在当前对象的程序中使用,不能在该对象的后代的程序中使用;3)protected:该函数只能在当前对象的程序以及该对象的后代的程序中使用。第4章PowerScript编程语言对象函数的命名规则一般与对象有关,如应用对象ApplacationObjec
t的函数一般以af_作为前缀,窗口对象window的函数一般以wf_作为前缀,选单对象memu的函数一般以mf_作为前缀,用户自定义对象的函数一般以uf_作为前缀。便于程序的维护。定义好的对象函数和标准函数一样使用。不同之处是在其他对象的程序中调用时,应在函数名前加上函数所
在的对象名,且对相应处于打开状态。可以修改创建的自定义对象函数。首先打开自定义函数所在的对象,然后打开script代码编辑窗口,先选择functions,再选择要修改的函数。对象函数的返回值的类型、参数名、个数及类型都能随时更改。