1、PB教程第十四节141 名词1411 注释行注释行用来书写说明,它有两种写法:以“必需一字母开头2. 最长40个字符,而且中间不能插入空格。3. 区分大小写4. 表示符能够有字母、数字和如下的特殊字符组成:短划线“-”、下划线“_”、美元符号“$”,号码符号“#”和百分符号“%”。例如:butName,main_win,code2都是适合的标识符。1413 标号尽管在咱们不提倡在程序设计当中利用GOTO语句,可是POWER SCRIPT仍然支持它。能够利用标号来指明转移的地址。标号的写法是在标识符的后面加上冒号。例如:ADDRESS1:PROCESSDATA().或ADDRESS2:PROCE
2、SSDATA()1414 特殊字符在字符串当中能够包括特殊字符。它们的写法如下:新行(NEWLINE):n制表符(TAB):t垂直制表(VERTICAL TAB):v回车(CARRIGE RETURN):r换行(FORMFEED):f退格(BACKSPACE):b双引号:单引号:弯曲符:也能够利用在符号的后面跟上一个数的方式来表示那个数值对应的ASCII字符。如888,h16(十六进制),o999(八进制)。1415 空值空值(NULL)是在与数据库互换数据的时候利用的一种特殊值。这与空字符、数值零、和日期00000000不同。空值既不是零,也不是非零的任何数值。1416 保留字保留字是指被P
3、OWER BUILDER内部利用,而不能作为标识符的单字,它们有:alias,and,autoinstantiate,call,case,choose,close,commit,connect,constant,continue,create,cursor,declare,delete,describe,descriptor,destroy,disconnect,do,dynamic,else,elseif,end,enumerated,event,execute,exit,external,false,fetch,first,for,forward,from,function,global,
4、goto,halt,if,immediate,indirect,insert,into,intrinsic,is,last,library,loop,next,not,of,on,open,or,parent,post,prepare,prior,private,privateread,privatewrite,procedure,protected,protectread,protectwrite,prototypes,public,readonly,ref,return,rollback,rpcfunc,select,selectblob,shared,static,step,subrou
5、tine,super,ssytem,systemread,systemwrite,then,this,to,trigger,true,type,until,update,updateblob,using,varibles,while,with,within,_debug14 this代名词this代表窗口、用户对象、菜单、应用对象或操纵对象自身。例如说,在一个静态文本控件的脚本中敲入如此的代码:(text=您好),静态文本上面的文本就会改变成“您好”。14 ParentParent能够在窗口的操纵、用户定制对象和菜单的程序中利用。当在窗口的操纵当中利用Parent的时候,Parent指向包容该
6、操纵的窗口。例如说若是把下面的语句写入某窗口的一个按钮的CLICKED事件的脚本当中的话,那么在用户单击那个按钮的时候,就会关闭那个窗口。14 ParentWindowParentWindow只能在菜单的脚本当中利用,它代表运行时菜单所在的窗口,例如:在一条菜单命令的脚本中输入如此的代码的话将会关闭菜单所在的窗口。Close(ParentWindow)14 Super在编写操纵或对象的子对象的脚本的时候,能够挪用先人的脚本,用户能够直接利用先人对象的名称挪用它们,也能够利用Super来引用直接双亲。例如要挪用父类的Clicked脚本能够如此写:CALL Super:Clicked需要注意的是,
7、用户只能在先人的直接后代的函数和事件当中利用Super,不然编译器将返回语法错误。而且咱们只能在子类窗口的事件脚本或函数当中利用Super,而不能在子类窗口的操纵当中利用Super ,不然编译器也将产生语法错误。14 续行和断句大多数情形之下,每一条语句占据一行,能够有的时候会碰到语句超长或希望多写几行的情形,这时就需要用到续行符&若是行尾的字符恰好是&,那么下一行自动是本行的继续行。例子:IF num1 = 5 AND &num2 = 6 THEN num3 = 7若是要将一个长字符串分为多行的时候,仅仅需要在行末加入&,编译器就会以为下一行的内容也是那个字符串的内容。例子:astring
8、= abcdefghi&jklmnopqrstuvwxyz需要注意的是利用这种方式将会把续行符前面的和继续行初始处的空格或TAB都作为字符串的的一部份,若是希望幸免这种情形,能够利用下面的这种格式:astring = abcdefghi&+jklmnopqrstuvwxyz142 POWER SCRIPT语言14 赋值语句赋值语句能够把一个表达式的结果或变量和常量的值,赋给一个变量或对象的属性或成员变量。赋值语句的格式是:variablename = expression其中variablename代表变量名,expression代表表达式,它将表达式的值赋给等号左侧的变量。例如:string
9、 = abcainteger = 6利用赋值语句也能够为数组变量赋值。例如:integer aarrayaarray = 1,2,3,4,5,6在变量和数组之间也能够利用赋值语句复制数据:array1 = array214 单目操作符POWER BUILDER也提供了一些类似于C语言的单目操作符。咱们利用一个表格进行说明:操作符 例子 等价于 + I+ I = I + 1 - I- I = I - 1 += I+=6 I = I + 6 -= I-=6 I = I - 6 *= I*=6 I = I * 6 /= I/=6 I = I / 6 = I=6 I = I 6 14 CALLCALL
10、语句在继承对象中挪用先人对象的脚本,用户在继承对象的事件中不但能够挪用先人的用户对象、菜单对象或窗口对象的脚本,而且能够挪用先人窗口或用户对象中的操纵的脚本。CALL语句的语法格式为:CALL ancestorobject.controlname:event(argument)其中,ancestorobject指明先人对象的标识名,controlname是操纵的名字,event 和 argument代表被挪用的事件及其参数列表,若是事件概念的参数在挪用的时候没有argument ,那么空值被作为默许值传递。新版本的语法许诺用户触发(trigger)或告知挪用(post)先人的事件,可是不能挪用
11、先人中操纵的脚本。14 CHOOSE CASECHOOSE CASE操纵结构依照测试值决定程序执行方向,它是一个条件多分支结构。CHOOSE CASE的语法格式为:CHOOSE CASE testexpressionCASE expressionlistStatementCASE expressionlistStatement.CASE ELSEStatementEND CHOOSEtesttexpression代表测试值,不同的测试值引发不同的语句的执行。expressionlist代表判定表达式,它能够用以下的几种形式:1 用逗号分割的数据,例如:1,2,3,4,5,6,2 用TO表示一个
12、区间,例如:1 TO 603 用IS代表测试值,并辅以关系操作符,例如:IS 204 利用以上的三种方式的综合,用逗号分隔,例如:6,6 TO 16,IS 36在CHOOSE CASE语句中至少包括一条CASE,而且利用END CHOOSE作为结尾。POWER BUILDER将逐条地查找CASE,若是找到与测试值匹配的判定表达式的时候,就执行该CASE后面的语句,然后转向指向END CHOOSE后的第一条语句若是包括CASE ELSE,在位发觉任何匹配CASE条件的时候,执行CASE ELSE后面的语句。例子:CHOOSE CASE numCASE 6num = 7CASE IS 36num
13、= 36CASE ELSEnum = 56END CHOOSE14 FOR NEXTFOR.NEXT是一个计数循环体。利用该语句能够是循环体中的语句被执行规定的次数。该语句的语法格式为:FOR varname = start TO end step incrementstatementNEXT其中,varname 代表循环变量,start、end别离为初值和终值,increment为步长增量,缺省值为1。在利用FOR NEXT语句的时候应该注意,varname是integer型,end0的值不能取得过大,以防超出integer的取值范围,造成溢出。例子:integer array116FOR
14、I = 1 to 16 array1I = INEXT14 DOLOOPDOLOOP是一个通用的循环语句。它包括四种形式:1 DO UNTIL LOOPDO UNTIL LOOP的语法格式为:DO UNTIL conditionstatementsLOOP其中condition代表循环进行的条件,statements表示循环执行的语句。DO UNTIL语句执行循环体的语句直到UNTIL后面标明的条件表达式结果为TRUE,若是在第一次该计算表达式时结果即为FALSE,那么循环体中的语句可不能被执行。2 DO WHILE LOOPDO WHILE LOOP的语法格式为:DO WHILE condi
15、tionstatementsLOOP其中condition代表循环进行的条件,statements表示循环执行的语句。DO WHILE语句在WHILE后的表达式结果为TRUE时,执行循环体中的语句,若是第一次对表达式求值的结果即为FALSE,那么循环体中的语句可不能被执行。3 DO LOOP UNTILDO LOOP UNTIL的语法格式为:DO statementsLOOP UNTIL condition其中condition代表循环进行的条件,statements表示循环执行的语句。LOOP UNTIL语句在UNTIL后表达式结果为FALSE是执行循环体中的语句,直到表达式结果为TRUE时
16、终止,可是循环体中的语句至少被执行一次。4 DO LOOP WHILEDO LOOP WHILE的语法格式为:DO statementsLOOP WHILE condition其中condition代表循环进行的条件,statements表示循环执行的语句。LOOP WHILE 语句当WHILE后面的条件表达式的结果为TRUE的时候,执行循环体中的语句,若是表达式计算结果为FALSE,循环终止,但至少被执行一次。14 CONTINUE在DOLOOP或FORNEXT语句循环体当中,碰到CONTINUE语句的时候,将不执行在CONTINUE后面和循环终止之前的语句,开始新一轮循环。例如在下面的例子
17、中,若是NUM1的值大于36,那么执行函数FUNCTION1。FOR NUM1 = 1 TO 56IF NUM1 = 36;14 DECLARE ProcedureDECLARE Procedure语句的语法格式为:DECLARE ProcedureName PROCEDURE FORStoredProcedureNamePraram1 = Value1 , Param2 = Value2 , .USING TransactionObject;ProcedureName代表进程名,能够利用任何POWER BUILDER同意的标识符,StoredProcedureName 代表数据库中保留的进程
18、,Praram1是StoredProcedureName进程的参数,在Praram1后的VALUE1是它的初始化值,USING TransactionObject子句指明引用的事务对象,若是缺省该子句,表示利用默许事务对象SQLCA。14 DELETEDELETE删除某事务对象中的表中的数据。其语法格式为:DELETE FROM TableName WHERE CriteriaUSING TransactionObject;TableName代表将要删除的数据的持有表,Criteria指明删除的标准,USING TransectionObject指明利用的事务对象,缺省表示利用SQLCA。删除
19、游标中当前数据和与之对应的表中的数据,能够利用下面的DELETE语句。DELETE FROM TableName WHERE CURRENT OF CursorNameTableName是持有要删除数据的表的标识符,CursorName是与之对应的游标名。14 DISCONNECTDISCONNECT第一执行COMMIT语句,然后与数据库解除连接。其语法格式为:DISCONNECT USING TransactionObject;TransactionObject是包括需要接触连接数据库信息的事务对象。14 EXECUTEEXECUTE语句执行一个已说明的进程,在那个地址不需要指明事务对 象,因为在说明进程时事务对象已经指明。EXECUTE的语法格式为:EXECUTE ProcedureName;其中ProcedureName指明要求执行的进程的名字。14 FETCHFETCH语句从游标或进程中读取当前的记录,并把它们存储在指定的变量当中。数据库支持的情形下,用户还能够利用FETCH FIRST、FETCH PRIOR或FETCH LAST语句。FETCH语句的语法格式为:FETCH Cursorname | Procedure INTO HostVariableList;其中HostVariableList代表存储数据库记录的变量列表。14 INSERTINSER
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1