zoukankan      html  css  js  c++  java
  • PowerBuilder学习笔记之2PowerScript语言(三)

    教材地址:https://wenku.baidu.com/view/1e82d26925c52cc58ad6be05.html?sxts=1565679996440

    2.6嵌入式SQL语句

    2.6.1几个常用的SQL语句介绍

    1数据库连接管理语句

    (1)使用CONNECT语句建立与数据库的连接

    语法格式:CONNECT[USING TransactionObject];//TransactionObject 是事务对象,执行语句前要正确设置事务对象的数据连接属性,方括号中的内容可以省略,省略后默认的事务对象为SQLCA

    (2)使用DISCONNECT 语句断开与数据库的连接

     DISCONNECT   执行时先执行COMMIT语句(事务提交语句),完成事务提交,在解除与数据库的连接

    语法格式:DISCONNECT [USING TransactionObject];TransactionObject 指的是前面CONNECT 语句中的事务对象。

    2事务管理语句

    (1)提交事务语句COMMIT

    COMMIT语句提交事务,完成数据库的物理修改。执行该语句后,将关闭所有先前打开的游标和过程,并且开始一个新事务。

    语法格式:COMMIT[USING TransactionObject]  //TransactionObject 是自上次执行COMMIT、ROLLBACK或操作之后,要永久更新的数据库操作的事务对象,方括号省略时默认的事务对象为SQLCA。

    (2)回滚事务语句ROLLBACK

    ROOLLBACK 语句放弃自上一个COMMIT或ROLLBACK或CONNECT语句后的所有数据操作,关闭所有游标和过程,并开始一个新事务

    语法格式ROLLBACK[USING TransactionObjec] //方括号省略时默认事务对象为SQLCA

    3.基本操作语句

    (1)SELECT 语句

    单行检索语句SELECT 从数据库中检索一条记录,如果找到多条满足条件的记录,则产生错误。

    语法格式:SELECT column INTO :变量1,:变量2 ...,:变量n

    from 表名 [where 条件表达式] [USING TransactionObject];  TransactionObject 为当前连接的事务对象

    例:SELECT  name,age

      into :n,:a

      from Student

      where name=''小明"

      using sqlca ;//必须有分号,  :n,:a 是程序声明的变量

     INSERT 、DELETE 、UPDATE 与SELECT 

    4.检查SQL语句的执行情况

    事务对象的SQLCode 属性会给出一个值标识SQL语句是否执行成功

    SQLCode值:0  最近一次SQL语句执行成功

    -1 最近一次SQL语句执行失败

    100 最近一次SQL语句没有返回数据

    5.游标

    DELCARE 游标名称 CURSOR FOR SQL语句

    游标操作的基本步骤为:

    1.用DECLARE 声明游标

    2.用OPEN打开游标

    3.用FETCH语句读取一行数据

    4.处理数据

    5.判断是否读取完数据,未读取完则重复3、4、5

    6.使用CLOSE 语句关闭游标。

    例:string ls_name
    declare readdate cursor for select mc from bm where dwid='1';//创建游标并赋值
    open readdate;//打开游标
    fetch readdate into :ls_name;//从游标中取值,每执行一次游标就会读取下一条数据
    do while sqlca.sqlcode=0 //遍历游标
    ddlb_1.additem(ls_name)
    fetch readdate into :ls_name;
    loop
    close readdate;//关闭游标

     2.7事件和函数

    2.7.1调用事件和函数

    完整语法:[ObjectName]ancestorclass::[type][when]name([argumnetlist])

    说明:ObjectName:指定函数或事件的对象名

    ancestorclass:指定函数或事件的祖先类名

    type:1 EVENT(调用事件类型),2FUNCTION(调用函数类型)

    when: 1 TRIGGER(立即触发事件或函数) 2 POST(异步触发事件或函数)

    name:事件或函数的名称

    argumnetlist:传给事件或函数的参数值

    win_ancesstor::EVENT ue_process() //调用祖先窗口win_ancesstor中的事件 ue_process()

    2.7.2常用函数

    1.MessageBox()

    可以在屏幕上显示一个窗口,用户在响应该窗口后,程序才能继续运行下去

    格式:MessageBox(title,text [,icon [,button [,default]]])

    其中,title和text参数是必需的,其他大括号中的参数是可选项。
    各参数的含义如下。
     title:String类型,指定消息对话框的标题。v
     text:指定消息对话框中显示的消息,该参数可以是数值数据类型、字符串或boolean值。v
     icon:枚举类型,可选项,指定要在该对话框左侧显示的图标。值为Information!(默认值);StopSign!;Exclamation!;Question!;None!。v
     button:枚举类型,可选项,指定显示在该对话框底部的按钮。值为OK!(默认值);OKCancel!;YesNo!;YesNoCancel!;RetryCancel!;AbortRetryIgnore!。v
     default:数值型,可选项,指定作为默认按钮的按钮编号,按钮编号自左向右依次计数,默认值为1。v

     函数执行成功时返回用户选择的按钮编号(如1、2、3等),发生错误时则返回-1。如果任何参数的值都为Null,则执行MessageBox()函数后返回Null。

    例:

    Int ret
    ret=MessageBox("这是一个例子", "是否要存盘?", Question!, YesNoCancel!, 3)
    IF ret=1 THEN
    //Dw_1.update()
    MessageBox("这是一个例子","存盘成功!")
    ELSE
    IF ret=2 THEN
    RETURN
    END IF
    END IF

     

     2.OPEN() 函数

    用于打开一个PowerBuilder窗口。
    格式:
    Open(window_name)
    打开窗口并触发窗口的“Open”事件。

    3.Close()函数用于关闭一个PowerBuilder窗口。
    格式:
    Close(window_name) 
    或Close(parent)//退出当前窗口 parent 代指当前窗口对象
    首先触发窗口的“CloseQuery”事件,若“CloseQuery”事件的返回值不等于1,则再触发“Close”事件,关闭窗口并释放窗口及窗口上的控件所占据的内存。

    4.RUN()
    Run()函数被用于在PowerBuilder中运行其他的Windows应用程序,如计算器、记事本及其他用户应用程序等。
    格式:
    Run(appl)或 Run(appl{,windowstate})
    其中,参数appl是一个字符串,指明要运行的应用程序名,若不含路径名,则默认为当前路径。

    参数windowstate 是个枚举类型,用以指明开始运行时的窗口状态,有3个值:Maximized! 最大化窗口,Minimized! 最小化窗口,Normal! 正常窗口(原始窗口),此为默认值
    例:Run("C:WINDOWSsystem32calc.exe", normal!)

     2.8.3应用程序对象函数

     菜单栏中的“View/FUNCTION LIST”可以看到可用于应用程序对象的函数列表,在这些函数中SetLibraryList() 和SetTransPool()专门用于应用程序对象。

     

    窗口中的主要函数如下:

    1.SetLibraryList():该函数主要用于改变对象库搜索路径中的动态库文件列表。

    2.SetTransPool():该函数主要用于为应用程序建立数据库处理池

    3.ClassName():该函数用于返回一个对象的类或一个变量的数据类型。

    4.GetContextService():该函数用于创建对一个指定服务对象的引用。通过调用该函数,可以访问服务对象的属性

    5.PostEvent():该函数用于将一个事件插入到对象消息对列的尾部

    6.TriggerEvent():该函数用于触发一个对象的指定事件,执行该事件的脚本

    7.TypeOf():该函数用于返回对象或控件的类型。

    2.7.4用户自定义函数 

    1创建自定义函数

    2修改自定义全局函数

    详细操作流程查看教材

    2.7.5事件

     常用事件

    1.OPEN事件  

    是一个非常重要的事件,它表明了应用程序对象开始执行。该事件只发生一次,但必须为它编写脚本代码。

    在交互式的应用程序中,Open事件脚本的功能是:初始化运行环境并打开程序主窗口

    2.Close 事件

    Close事件发生在应用程序退出之前,其功能是删除应用程序所产生的临时性文件及定义的对象,在初始化文件中写相应的信息,关闭所访问的资源文件,断开与数据库的连接等等,此事件也只发生一次。

     3.Idle事件

    在应用程序的任意脚本中,调用Idle事件后,在规定事件内,如果没有使用键盘或鼠标,则触发应用程序的Idle事件。

    4.SystemError事件

    当应用程序发送严重运行错误时,触发SystemError事件,触发该事件的两个主要原因是:

    当程序引用了不存在的对象。

    DLL动态库通讯时发生了错误。

    5.ConnectonBigen事件

    仅用于分布式应用程序

    6.ConnectonEnd事件

    仅用于分布式应用程序

  • 相关阅读:
    Dom之标签增删操作
    Dom实例:数据自增、搜索框及跑马灯
    Dom选择器及操作文本内容
    Tkinter单选框及滚动条
    Tkinter颜色方案举例
    TKinter之窗口美化 窗口大小、图标等
    TKinter之文本域与多窗口
    TKinter之菜单
    JavaScript 基本语法
    TKinter的常用组件
  • 原文地址:https://www.cnblogs.com/Bokeyan/p/11350632.html
Copyright © 2011-2022 走看看