配色: 字号:
第3章 事务与应用对象
2022-11-05 | 阅:  转:  |  分享 
  
第3章 事务与应用对象3.1 事务对象简介3.2 应用对象简介3.3 应用对象属性3.4 应用对象事件3.5 本章小结3.6 本
章习题 3.1.1 事务对象基本概念事务对象是PowerBuilder应用程序与数据库之间进行通信的唯一桥梁,系统默认的全局事务对
象为SQLCA。没有事务对象,应用程序就不能访问数据库,因此无论是通过嵌入式SQL语句还是通过数据窗口访问数据库,都必须使用事务对
象。事务对象在应用程序中的作用如图3-1所示。3.1.1 事务对象基本概念事务对象是系统预定义的非可视化全局对象,在应用程序的任何
地方均可以使用和访问。事务对象在应用程序启动之后便常驻内存,它拥有用于连接数据库以及从数据库中得到反馈数据的所有信息。通常,Pow
erBuilder应用程序与数据库进行通信的步骤主要有以下4个步骤组成:设置事务对象SQLCA的属性值;建立数据库连接并判断数据库
连接是否成功;执行数据库操作(通过嵌入式SQL语句或者数据窗口技术);断开与数据库的连接。 3.1.1 事务对象基本概念例3.1
使用事务对象SQLCA模拟与ODBC数据源名称为EAS Demo DB V9的数据库的整个通信过程,包括设置数据库连接属性、建立数
据库连接、执行数据库操作和最终断开数据库连接。//设置数据库连接属性SQLCA.DBMS = "ODBC"SQLCA.DBParm
= "ConnectString=''DSN=EAS Demo DB V9;UID=dba;PWD=sql''“//使用嵌入式SQL
连接数据库CONNECT USING SQLCA;3.1.1 事务对象基本概念//判断数据库连接是否成功if SQLCA.sqlc
ode <> 0 then messagebox("连接错误","错误:" + SQLCA.SQLErrText ,StopSi
gn!) returnend if//执行数据库所需要的操作。。。。。。//断开与数据库的连接DISCONNECT USING
SQLCA; 3.1.2 事务对象基本属性3.1.2 事务对象基本属性3.1.3 自定义事务对象创建新的事务对象时,需要首先声明一
个Transaction变量,其声明的语法格式为:Transaction myTrans在新声明的事务对象能够使用之前,必须使用C
reate语句完成其实例化的工作,其语法格式为:myTrans = Create Transaction新建的事务对象在完成实例
化之后,就可以如SQLCA一样被使用。销毁事务对象使用Destroy语句,其语法格式如下:Destroy myTrans3.1.3
自定义事务对象例3.2 使用自定义事务对象myTrans建立与ODBC数据源名称为EAS Demo DB V9的数据库的连接,其
中用于连接数据库的用户名和密码分别为dba和sql。Transaction myTransmyTrans = Create Tr
ansactionmyTrans.DBMS = "ODBC"myTrans.DBParm = "ConnectString=''DS
N=EAS Demo DB V9;UID=dba;PWD=sql''“CONNECT USING myTrans;3.2.1 应用对
象简介 应用对象是PowerBuilder中一个非常重要的非可视化系统对象,同时也是每一个应用程序都必须具备的对象,?有而且仅有一
个。应用对象用于标识应用程序,是整个应用程序的入口,这一点应用对象就如同C语言中的主函数main()。 3.2.1 应用对象简介应
用对象除了标识应用程序和作为应用程序的入口点外,还保存和定义了如下的一些有关信息:默认字体:可用于设置应用程序中相关对象使用的默认
字体。 应用程序图标:指定应用程序中的所有窗口运行时显示在标题栏上的默认图标。 应用库搜索路径:指明了在查找应用程序中包含的各种对
象时需要检索哪些应用库。 默认的全局变量:提供了五个默认的全局变量,分别为SQLCA、SQLDA、SQLSA、ERROR和MESS
AGE。 定义应用对象级结构、函数和实例变量以及其他全局变量。 3.2.2 应用对象创建 应用对象创建之前,首先必须确保工作空间已
经在系统树中存在。 应用对象的创建是在创建应用目标和应用库时自动创建的。 应用对象的创建对话框:创建Template Applic
ation是指根据预定的模板创建应用程序对象的过程。在PB 9.0中可以创建的模板应用主要包括MDI Application、SD
I Application和PFC-based Application。 创建Existing Application是指将原先采
用低版本的PowerBuilder所开发的应用程序在高版本的PowerBuilder中打开,完成其中应用对象以及其他对象的转换过程
。 3.2.3 应用对象打开应用对象创建之后,可以通过在系统树中直接双击打开应用画板。应用画板是应用对象的设计工具,如图3-6所示
。因为应用对象是一种非可视化对象,因此在应用对象画板中没有布局视图。默认情况下,应用对象打开后将直接进入Open事件的脚本视图。
3.2.4 应用库搜索路径通常,应用库文件的大小不宜超过800K,否则将增加系统的查库时间。因此随着应用程序规模的扩大,应用程序所
需要的应用库文件可能是多个,以便更好得对系统对象进行分类管理。创建新的应用库文件或者指定已经存在的应用库文件到搜索路径的步骤如下所
示:首先确保关闭当前应用程序中打开的所有子窗口,然后在系统树窗口中右键单击目标对象,并从弹出的菜单中选择Properties菜单项
。单击【New】按钮打开保存应用库文件的对话框,在其中输入应用库文件即可;单击【Browse】按钮打开选择应用库文件的对话框,然后
选择应用库文件即可,最后单击【OK】按钮进行保存。3.3.1 应用对象常规属性常规属性是在属性视图的General选项页中进行设置
。 DisplayName:指定应用程序显示的名称。MicroHelpDefault:指定应用程序状态栏所显示的帮助信息。DWMe
ssageTitle:用于指定程序运行时数据窗口对话框的标题。RightToLeft:用于设置对话框中有关内容的显示方向,默认为从
左到右,选中该选项则为从右到左。 FreeDBLibraries:用于设置是否在断开与数据库的连接后释放数据库的接口库。
3.3.2 工具条属性工具条属性在属性视图的Toolbar选项页中进行设置。 ToolbarFrameTitle:当应用程序MD
I窗口工具栏处于浮动状态时显示的标题;ToolbarSheetTitle:应用程序MDI子窗口工具栏处于浮动状态时显示的标题;To
olbarPopMenuText:用于指定工具栏快捷菜单中菜单项显示的文本信息。3.3.3 附加属性附加属性的设置需要单击属性视图
的General选项卡中的[Additional Properties]按钮,打开附加属性设置对话框。附加属性的设置主要包括三个方
面:应用程序字体的设置、应用程序图标的设置以及应用程序全局变量的类型设置。 3. 4 应用对象事件应用程序对象的事件一共只有6个,
其各个事件的触发时机如表3-3所示 。 3. 4 应用对象事件3.4.1 应用对象open事件应用对象的open事件在启动应用程序
时触发,且只发生一次。对于所有的PowerBuilder应用程序来说,都必须为该事件编程,否则试图运行应用程序时系统将出现错误提示
框,提示用户必须为应用对象的open事件编程。3.4.1 应用对象open事件通常,可在应用对象的Open事件中完成程序的初始化操
作。例3.3 在应用对象的open事件中,建立与ODBC数据源名称为EAS Demo DB V9的数据库的连接 //设置数据库连接
属性SQLCA.DBMS = "ODBC"SQLCA.AutoCommit = FalseSQLCA.DBParm = "Conn
ectString=''DSN=EAS Demo DB V9;UID=dba;PWD=sql''“//使用嵌入式SQL连接数据库CON
NECT USING SQLCA;//判断数据库连接是否成功if SQLCA.sqlcode <> 0 then messageb
ox("连接错误","错误:" + SQLCA.SQLErrText ,StopSign!) returnend if//打开应
用程序启动窗口open(w_main)3.4.1 应用对象open事件例3.3 假设与该数据库的连接信息保存于dbconfig.i
ni文件之中,连接数据库成功后照例打开启动窗口w_main。⑴ 单击工具栏上的Edit按钮打开文本编辑器,输入数据库连接信息后保存
文件为dbconfig.ini。 ⑵ Open事件的脚本代码更改为://读取数据库连接信息SQLCA.dbms = Profile
String("dbconfig.ini","Database","DBMS","") 。。。。//判断数据库连接是否成功if S
QLCA.sqlcode <> 0 then messagebox("连接错误","错误:" + SQLCA.SQLErrText
,StopSign!) returnend if//打开应用程序启动窗口open(w_main)3.4.2 应用对象close事
件应用对象的close事件在关闭应用程序时触发,而且只发生一次。该事件通常用于完成应用程序退出时的各种善后操作,例如保存当前应用程
序的运行状态,删除程序运行期间所创建的对象实例,断开与数据库的连接等。例3.4在应用对象的Close事件中,断开与ODBC数据源名
称为EAS Demo DB V9的数据库的连接 。⑴ Close事件脚本代码为:DISCONNECT USING SQLCA;3.
4.3 应用对象idle事件当用户在应用程序中调用了Idle()函数设置了一个定时器时间间隔之后,如果在指定的定时器时间间隔内,用
户未进行任何操作,那么系统将触发应用对象的idle事件。通常idle事件主要用于实现程序的自动退出功能;创建独具特色的屏幕保护程序
如带口令的屏保等。例3.5 利用应用对象的idle事件实现自定义屏保窗口的功能。在应用程序运行过程中,如果10秒钟内用户未进行任何
操作,则自动显示自定义屏保窗口。 3.4.4 应用对象systemerror事件应用系统发生严重的运行时错误时,将触发system
error事件。Systemerror事件是处理运行错误的最后一道关卡,可以在此处编写错误处理和可能的恢复代码或仅向用户显示出错信
息。如果未对此事件进行编程,那么系统出错时PowerBuider显示包括错误代码和错误信息的标准对话框。例3.6 利用应用对象的s
ystemerror事件实现应用系统强制退出。⑴ Systemerror事件的脚本代码为://提示信息 Messagebox("系
统错误","系统发生严重错误,将被强制关闭!",StopSign!)//强制关闭应用程序halt close3.4.5 应用程序错
误对象错误对象Error用于处理应用程序运行时所发生的错误,只有在应用对象的SystemError事件中才能被访问。通过检查Err
or对象的Number属性可以确定具体的错误原因,然后进一步明确要采取的措施。错误对象Error的属性主要描述如下:Number:
指定发生错误的代码编号;Text:对发生错误原因的简单描述;WindowMenu:发生错误的窗口或者菜单的名称Object:发生错
误的对象的名称ObjectEvent:发生错误的事件号Line:脚本中错误所在的行号3.5 本章小结本章首先介绍了事务对象的基本
概念、基本属性以及如何创建自定义事务对象;然后介绍了应用对象的基本概念、创建方法、属性以及事件,并在此基础之上通过示例介绍了应用对
象的使用方法。通过本章的学习,应该熟悉事务对象的基本概念以及相关属性,并且掌握应用程序对象的创建方法、属性设置以及相关的编程应用。
3.6 本章习题一、填空题1、________对象是PowerBuilder应用程序与数据库连接的唯一桥梁。2、PowerBui
lder中默认的事务对象是_________。3、________对象是PowerBuilder应用程序启动时装入的第一个对象。4
、当应用程序在运行中发生严重错误时所触发的事件是___________。5、PowerBuilder使用函数_______设置定时
器时间间隔,Idle(0)的作用是______________。3.6 本章习题二、简答题1、什么是事务对象?如何创建自定义的事务对象?2、PowerBuilder中,如何创建系统预定义的模版应用程序?3、PowerBuilder中,如何打开用低版本的PowerBuilder开发的应用程序?4、PowerBuilder中,如何设置应用程序的图标?5、应用对象的Open事件中,一般用于实现何种操作?6、请简述应用对象的事件以及其触发时机。3.6 本章习题三、编程题1、在应用对象的Open事件中,使用系统默认的事务对象SQLCA建立与ODBC数据源名称为EAS Demo DB V9的数据库的连接。2、使用函数Idle()和应用对象的Idle事件完成自定义屏幕保护程序的设计。要求:当用户超过10秒钟没有对应用程序进行任何操作时,系统自动显示自定义屏幕保护窗口。
献花(0)
+1
(本文系籽油荃面原创)