事务与应用对象_第1页
事务与应用对象_第2页
事务与应用对象_第3页
事务与应用对象_第4页
事务与应用对象_第5页
已阅读5页,还剩25页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

事务与应用对象第一页,共三十页,编辑于2023年,星期五3.1.1事务对象基本概念事务对象是PowerBuilder应用程序与数据库之间进行通信的唯一桥梁,系统默认的全局事务对象为SQLCA。没有事务对象,应用程序就不能访问数据库,因此无论是通过嵌入式SQL语句还是通过数据窗口访问数据库,都必须使用事务对象。事务对象在应用程序中的作用如图3-1所示。第二页,共三十页,编辑于2023年,星期五3.1.1事务对象基本概念事务对象是系统预定义的非可视化全局对象,在应用程序的任何地方均可以使用和访问。事务对象在应用程序启动之后便常驻内存,它拥有用于连接数据库以及从数据库中得到反馈数据的所有信息。通常,PowerBuilder应用程序与数据库进行通信的步骤主要有以下4个步骤组成:设置事务对象SQLCA的属性值;建立数据库连接并判断数据库连接是否成功;执行数据库操作(通过嵌入式SQL语句或者数据窗口技术);断开与数据库的连接。第三页,共三十页,编辑于2023年,星期五3.1.1事务对象基本概念例3.1使用事务对象SQLCA模拟与ODBC数据源名称为EASDemoDBV9的数据库的整个通信过程,包括设置数据库连接属性、建立数据库连接、执行数据库操作和最终断开数据库连接。//设置数据库连接属性SQLCA.DBMS="ODBC"SQLCA.DBParm="ConnectString='DSN=EASDemoDBV9;UID=dba;PWD=sql'“//使用嵌入式SQL连接数据库CONNECTUSINGSQLCA;第四页,共三十页,编辑于2023年,星期五3.1.1事务对象基本概念//判断数据库连接是否成功ifSQLCA.sqlcode<>0then messagebox("连接错误","错误:"+SQLCA.SQLErrText,StopSign!) returnendif//执行数据库所需要的操作。。。。。。//断开与数据库的连接DISCONNECTUSINGSQLCA;第五页,共三十页,编辑于2023年,星期五3.1.2事务对象基本属性第六页,共三十页,编辑于2023年,星期五3.1.2事务对象基本属性第七页,共三十页,编辑于2023年,星期五3.1.3自定义事务对象创建新的事务对象时,需要首先声明一个Transaction变量,其声明的语法格式为:TransactionmyTrans在新声明的事务对象能够使用之前,必须使用Create语句完成其实例化的工作,其语法格式为:myTrans=CreateTransaction新建的事务对象在完成实例化之后,就可以如SQLCA一样被使用。销毁事务对象使用Destroy语句,其语法格式如下:DestroymyTrans第八页,共三十页,编辑于2023年,星期五3.1.3自定义事务对象例3.2使用自定义事务对象myTrans建立与ODBC数据源名称为EASDemoDBV9的数据库的连接,其中用于连接数据库的用户名和密码分别为dba和sql。TransactionmyTransmyTrans=CreateTransactionmyTrans.DBMS="ODBC"myTrans.DBParm="ConnectString='DSN=EASDemoDBV9;UID=dba;PWD=sql'“CONNECTUSINGmyTrans;第九页,共三十页,编辑于2023年,星期五3.2.1应用对象简介应用对象是PowerBuilder中一个非常重要的非可视化系统对象,同时也是每一个应用程序都必须具备的对象,

有而且仅有一个。应用对象用于标识应用程序,是整个应用程序的入口,这一点应用对象就如同C语言中的主函数main()。第十页,共三十页,编辑于2023年,星期五3.2.1应用对象简介应用对象除了标识应用程序和作为应用程序的入口点外,还保存和定义了如下的一些有关信息:默认字体:可用于设置应用程序中相关对象使用的默认字体。应用程序图标:指定应用程序中的所有窗口运行时显示在标题栏上的默认图标。应用库搜索路径:指明了在查找应用程序中包含的各种对象时需要检索哪些应用库。默认的全局变量:提供了五个默认的全局变量,分别为SQLCA、SQLDA、SQLSA、ERROR和MESSAGE。定义应用对象级结构、函数和实例变量以及其他全局变量。第十一页,共三十页,编辑于2023年,星期五3.2.2应用对象创建应用对象创建之前,首先必须确保工作空间已经在系统树中存在。应用对象的创建是在创建应用目标和应用库时自动创建的。

应用对象的创建对话框:创建TemplateApplication是指根据预定的模板创建应用程序对象的过程。在PB9.0中可以创建的模板应用主要包括MDIApplication、SDIApplication和PFC-basedApplication。

创建ExistingApplication是指将原先采用低版本的PowerBuilder所开发的应用程序在高版本的PowerBuilder中打开,完成其中应用对象以及其他对象的转换过程。第十二页,共三十页,编辑于2023年,星期五3.2.3应用对象打开应用对象创建之后,可以通过在系统树中直接双击打开应用画板。应用画板是应用对象的设计工具,如图3-6所示。因为应用对象是一种非可视化对象,因此在应用对象画板中没有布局视图。默认情况下,应用对象打开后将直接进入Open事件的脚本视图。第十三页,共三十页,编辑于2023年,星期五3.2.4应用库搜索路径通常,应用库文件的大小不宜超过800K,否则将增加系统的查库时间。因此随着应用程序规模的扩大,应用程序所需要的应用库文件可能是多个,以便更好得对系统对象进行分类管理。创建新的应用库文件或者指定已经存在的应用库文件到搜索路径的步骤如下所示:首先确保关闭当前应用程序中打开的所有子窗口,然后在系统树窗口中右键单击目标对象,并从弹出的菜单中选择Properties菜单项。单击【New】按钮打开保存应用库文件的对话框,在其中输入应用库文件即可;单击【Browse】按钮打开选择应用库文件的对话框,然后选择应用库文件即可,最后单击【OK】按钮进行保存。第十四页,共三十页,编辑于2023年,星期五3.3.1应用对象常规属性常规属性是在属性视图的General选项页中进行设置。DisplayName:指定应用程序显示的名称。MicroHelpDefault:指定应用程序状态栏所显示的帮助信息。DWMessageTitle:用于指定程序运行时数据窗口对话框的标题。RightToLeft:用于设置对话框中有关内容的显示方向,默认为从左到右,选中该选项则为从右到左。FreeDBLibraries:用于设置是否在断开与数据库的连接后释放数据库的接口库。第十五页,共三十页,编辑于2023年,星期五3.3.2工具条属性工具条属性在属性视图的Toolbar选项页中进行设置。ToolbarFrameTitle:当应用程序MDI窗口工具栏处于浮动状态时显示的标题;ToolbarSheetTitle:应用程序MDI子窗口工具栏处于浮动状态时显示的标题;ToolbarPopMenuText:用于指定工具栏快捷菜单中菜单项显示的文本信息。第十六页,共三十页,编辑于2023年,星期五3.3.3附加属性附加属性的设置需要单击属性视图的General选项卡中的[AdditionalProperties]按钮,打开附加属性设置对话框。附加属性的设置主要包括三个方面:应用程序字体的设置、应用程序图标的设置以及应用程序全局变量的类型设置。第十七页,共三十页,编辑于2023年,星期五3.4应用对象事件应用程序对象的事件一共只有6个,其各个事件的触发时机如表3-3所示。第十八页,共三十页,编辑于2023年,星期五3.4应用对象事件第十九页,共三十页,编辑于2023年,星期五3.4.1应用对象open事件应用对象的open事件在启动应用程序时触发,且只发生一次。对于所有的PowerBuilder应用程序来说,都必须为该事件编程,否则试图运行应用程序时系统将出现错误提示框,提示用户必须为应用对象的open事件编程。第二十页,共三十页,编辑于2023年,星期五3.4.1应用对象open事件通常,可在应用对象的Open事件中完成程序的初始化操作。例3.3在应用对象的open事件中,建立与ODBC数据源名称为EASDemoDBV9的数据库的连接//设置数据库连接属性SQLCA.DBMS="ODBC"SQLCA.AutoCommit=FalseSQLCA.DBParm="ConnectString='DSN=EASDemoDBV9;UID=dba;PWD=sql'“//使用嵌入式SQL连接数据库CONNECTUSINGSQLCA;//判断数据库连接是否成功ifSQLCA.sqlcode<>0then messagebox("连接错误","错误:"+SQLCA.SQLErrText,StopSign!) returnendif//打开应用程序启动窗口open(w_main)第二十一页,共三十页,编辑于2023年,星期五3.4.1应用对象open事件例3.3假设与该数据库的连接信息保存于dbconfig.ini文件之中,连接数据库成功后照例打开启动窗口w_main。⑴单击工具栏上的Edit按钮打开文本编辑器,输入数据库连接信息后保存文件为dbconfig.ini。⑵Open事件的脚本代码更改为://读取数据库连接信息SQLCA.dbms=ProfileString("dbconfig.ini","Database","DBMS","")。。。。//判断数据库连接是否成功ifSQLCA.sqlcode<>0then messagebox("连接错误","错误:"+SQLCA.SQLErrText,StopSign!) returnendif//打开应用程序启动窗口open(w_main)第二十二页,共三十页,编辑于2023年,星期五3.4.2应用对象close事件应用对象的close事件在关闭应用程序时触发,而且只发生一次。该事件通常用于完成应用程序退出时的各种善后操作,例如保存当前应用程序的运行状态,删除程序运行期间所创建的对象实例,断开与数据库的连接等。例3.4在应用对象的Close事件中,断开与ODBC数据源名称为EASDemoDBV9的数据库的连接。⑴Close事件脚本代码为:DISCONNECTUSINGSQLCA;第二十三页,共三十页,编辑于2023年,星期五3.4.3应用对象idle事件当用户在应用程序中调用了Idle()函数设置了一个定时器时间间隔之后,如果在指定的定时器时间间隔内,用户未进行任何操作,那么系统将触发应用对象的idle事件。通常idle事件主要用于实现程序的自动退出功能;创建独具特色的屏幕保护程序如带口令的屏保等。例3.5利用应用对象的idle事件实现自定义屏保窗口的功能。在应用程序运行过程中,如果10秒钟内用户未进行任何操作,则自动显示自定义屏保窗口。第二十四页,共三十页,编辑于2023年,星期五3.4.4应用对象systemerror事件应用系统发生严重的运行时错误时,将触发systemerror事件。Systemerror事件是处理运行错误的最后一道关卡,可以在此处编写错误处理和可能的恢复代码或仅向用户显示出错信息。如果未对此事件进行编程,那么系统出错时PowerBuider显示包括错误代码和错误信息的标准对话框。例3.6利用应用对象的systemerror事件实现应用系统强制退出。⑴Systemerror事件的脚本代码为://提示信息 Messagebox("系统错误","系统发生严重错误,将被强制关闭!",StopSign!)//强制关闭应用程序haltclose第二十五页,共三十页,编辑于2023年,星期五3.4.5应用程序错误对象错误对象Error用于处理应用程序运行时所发生的错误,只有在应用对象的SystemError事件中才能被访问。通过检查Error对象的Number属性可以确定具体的错误原因,然后进一步明确要采取的措施。错误对象Error的属性主要描述如下:Number:指定发生错误的代码编号;Text:对发生错误原因的简单描述;WindowMenu:发生错误的窗口或者菜单的名称Object:发生错误的对象的名称ObjectEvent:发生错误的事件号Line:脚本中错误所在的行号第二十六页,共三十页,编辑于2023年,星期五3.5本章小结本章首先介绍了事务对象的基本概念、基本属性以及如何创建自定义事务对象;然后介绍了应用对象的基本概念、创建方法、属性以及事件,并在此基础之上通过示例介绍了应用对象的使用方法。通过本章的学习,应该熟悉事务对象的基本概念以及相关属性,并且掌握应用程序对象的创建方法、属性设置以及相关的编程应用。第二十七页,共三十页,编辑于2023年,星期五3.6本章习题一、填空题1、________对象是PowerBuilder应用程序与数据库连接

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论