PowerBuilder技术讲座(摘自计算机世界报)
PowerBuilder学习资料
本文档分为两个部分,(完全是分开的两部-没关联)第一部分:PB书本自学类容一:标识符:标识符是程序中用来代表变量,标号,函数,窗口,控件,对象等名称的符号。
标识符必须是下划线或者字母开头,标识符的非开头字符可以是字母,数字或者5中特殊符号(-,_,#,%,$)标识符不区分大小写标识符的书写应保持连续,中间不能留空格。
标识符的最大长度应该控制在100个字符内。
保留字不能用作标识符,因为它们已经有特殊的含义。
Asdf_dfdfDffds-adfDfsdf_adfDfa#dfAsdf%fggDff$fsdfThis //误用保留字二:ASCLL码字符:字符串中可以包括特殊的ascll码字符,它们不能使用常规的的输入方法直接输入,要使用其他字符来替代。
新行:~n 制表:~t 双引号:~”单引号:~’等等三:代词:日常生活中可以用你,我,他之类的代词来指代特定的人物,PowerBuilder也提供了几个代词指定特定的对象。
4个代词分别是:this parent parentwindow super 其中前3个广泛使用。
1.This:代表窗口,用户对象,菜单,应用对象或控件本身,即代表正在为之编写事件处理程序的对象。
示例;设窗口有一个名称为cb_button的按钮,其上显示的文本是‘请单击’在该按钮的clicked事件中可以添加如下代码:This.text= ‘再单机一次’:语句执行后把请单击改成了‘再单机一次’不用代词语句:cb_button.text= ‘再单机一次’2.parent: 代表当前控件所在的窗口对象如上述例子:parent.text= ‘再单机一次’3Parentwindow 代表程序运行时当前菜单所在的窗口对象,注意:改代词只能在菜单对象的事件处理程序中使用。
例子:假设cb_button窗口关联了一个菜单对象,该菜单中的‘关闭’命令用于关闭窗口cb_button,我们可以在该菜单项的clicked事件中添加如下代码://关闭关联窗口Close (parentwindow)//等同于Close(cb_button)Super :在编写空间或对象的子对象时,子对象中可以调用父对象的事件处理程序,程序中的既可直接利用父对象名称调用他们,也可以使用super代词来应用。
powerbuilder入门培训
数据操作和事务控制命令
命令
INSERT UPDATE DELETE COMMIT ROLLBACK
描述
向表中插入新记录 修改表中已有的记录 从表中删除已有记录 提交保存 回滚
关于数据库
• Oracle 10g 数据库
1.安装(服务器端和客服端) 2.数据库配置和网络连接 3.导入和导出
导入使用IMP命令,导出使用EXP命令
PB培训
• PowerBuilder的开发语言-----PowerScript • PowerBuilder的安装和启动 • PowerBuilder的基本概念
在PowerBuilder的一个应用程序中,通常包含许多对象,如应用 对象(application)、窗口对象(window object)等。在开发应用程 序时,PB将应用程序所包含的有关对象均保存到相应的PB库文件或应 用库中。其库文件实际上就是相关的“源程序”,其扩展名 为.PBL(意为PowerBuilder Library)。 从PB 8.0开始,引入了工作区与目标两个全新的概念。在PB中。 工作区是一个比应用层次更高的空间,而目标则代表着相应的应用程 序。工作区文件的扩展名为.PBW(意为PB Workspace),目标文件的扩 展名为.PBT(意为PB Target)。在一个工作区中,刻包含一个或多个 目标;而在一个目标中,又可包含一个或多个应用库。
• 后台数据库操作工具PLSQL Developer的 使用
PB的工作区、目标与应用库及各对象的层次关系
工作区(PBW) 目标(PBT) 应用库(PBL) 应用对象 窗口对象 数据窗口对象 菜单对象 ......
PB的主窗口界面:
• • • • 标题栏 菜单栏 工具栏 系统树窗口
PowerBuilder技术教程(戴士弘)第6章
理用户窗口。 通过一个主窗口上的主菜单打开各个用户窗口来
进行系统的管理, 并且在学生信息维护窗口中, 采用菜单和工具 条进行数据维护工作。在本实例开始之前, 读者应有学生管理系 统的三个数据表的数据维护窗口。比如仿照w_student_detail窗 口(学生信息维护窗口)设计的w_course_detail(课程信息维护 窗口)和w_score(成绩信息维护窗口)。
第 6 章 菜单与MDI窗口设计 【课程信息】菜单的Clicked事件 // clicked for m_couerse
SetPointer(HourGlass!)
//打开课程信息维护窗口 OpenSheet(w_course_detail, w_main, 5, Layered!) 【成绩管理】菜单的Clicked事件 // clicked for m_student
菜单m_main的菜单项设计如表 6 - 2所示。
菜单m_datamanager的记录操作(m_record)菜单条的菜单
项设计如表 6 - 3所示。
第 6 章 菜单与MDI窗口设计 (3) 实例的创建过程: 在PowerBuilder开发环境打开student应用, 然后按以下步 骤进行本实例的创建工作,创建流程如图 6-1所示。
【平铺排列】菜单的Clicked事件
//clicked for m_layer //排列打开的窗口为平铺方式
parentwindow.arrangesheets(Layer!)
【层叠排列】菜单的Clicked事件 //clicked for m_Cascade //排列打开的窗口为级联方式 parentwindow.arrangesheets(Cascade!) 【工具条】菜单的Clicked事件 //clicked for m_settoolbar setpointer(hourglass!)
powerbuilder10实用教程(全)专题培训课件
2019/12/25
第2页
PowerBuilder 10实用教程
教学重点
标识符命名规则 注释语句 基本控制语句 函数和结构
2019/12/25
清华大学出版社
第3页
PowerBuilder 10实用教程
教学过程
语言特点 PowerScript基础语句 控制语句 系统函数 自定义函数 函数的重载和超越 使用外部函数 结构
2019/12/25
第6页
PowerBuilder 10实用教程
清华大学出版社
标识符
标识符是程序中用来代表变量、标号、函数、窗口、菜单、 控件及对象等名称的符号。在PowerBuilder中标识符的 命名必须遵循以下命名规则:
– 必须以字母和下划线开头。
– 保留字不能作为标识符。
– 除了首字母其余字符可以是字母、数字以及下述特殊符号:下划 线(_)、连字符(.)、美元符号($)、和百分号(%)。
– Parent:用于窗口中的控件、自定义用户对象的控件和菜单编写 脚本,指示包含控件的窗口、自定义用户对象和当前菜单的上层 菜单项。
2019/12/25
第10页
PowerBuilder 10实用教程
数据类型
清华大学出版社
数据类型是编程语言中的一个重要概念, 它表示数据的特点。在PowerScript语言中 共有4种数据类型,它们分别是:标准数据 类型、Any数据类型、系统对象数据类型以 及枚举数据类型。
2019/12/25
清华大学出版社
第4页
PowerBuilder 10实用教程
清华大学出版社
2.1 语言特点
PowerScript语言的语法和组织结构与传统的 Basic相似,但是它格式更自由,在编写程序代 码时,编译器忽略它的空格、缩进、空行等。
Pocket PowerBuilder开发技术讲座
Pocket PowerBuilder开发技术讲座跟我学Pocket PowerBuilder使用Pocket PowerBuilder 建立一个SalesDB 应用程序在这里我们将透过一步步解说的方式,教您如何用Pocket PowerBuilder 建立并且布署一个PDA 上的应用程序,完成这些步骤后,您将会了解Poc ket PowerBuilder 更多、更强大的功能及其中完整的Mobile Solution 。
开始前的准备工作在开始和我们一起使用Pocket PowerBuilder 导览程序之前,请先确定以下事项:确认您的Pocket PowerBuilder 可以顺利执行,并且找出它的安装路径,在这里假设安装路径是:C:\Program Files\Sybase\Pocket Po werBuilder 1.0 在后面的说明文件中,我们会用%PPB% 来代替安装路径,请您切记。
确认ASA 的版本至少是ASA 8.0.2 或ASA 9 以上,如果您的ASA 是6、7、8.0.1 的版本,在PDA 与桌上数据库的数据同步时将会有问题。
确认您在PDA 或是PDA 仿真器有安装Pocket PowerBuilder Virtual Machin e (VM) 确认您在PDA 或是PDA 仿真器有安装Adaptive Server Anywhere (ASA) database and Mob iLink Client 如果您还没有准备好,或是您不了解这是什么意思,您可以查阅「Pocket PowerBuilder Inst allation Guide 」。
概述SalesDB 这个简单的PDA 应用程序是一个使用Pocket PowerBuilder 完成的小程序,要完成这个小程序,它用到的技术包括了使用「MobiLink 同步技术」和Pocket PowerBuilder 强大的开发技术。
powerbuilder培训
1.2 集成开发环境IDE简介
1. 主窗口 主窗口中有一行菜单栏和一行工具栏。工具栏上的图标与某一个菜 单条相对应 File菜单项 Run菜单项 Tools菜单项 2. 画板 所谓画板实际上就是完成一定功能的工具窗口 3. 工具栏 缺省情况下,工具栏显示在窗口顶部.
1.2 集成开发环境IDE简介
通过本节的应用程序,初步了解编程的基本过程。应用程序的外观。
1.5 简单应用程序实例
在硬盘上创建用于程序上载应用目录E:\upload 。 步骤: 1.创建应用 (1) 创建新的工作空间。单击 New 图标按钮 选择 “Workspace”页,单击“OK”,弹出保存文件对话框, 选择到新建的目录E:\upload,输入文件名为“upload”。 (2) 创建新的应用。单击New图标按钮 “Target”页 应用“ Application” ,单击“ OK” 保存文件对话框, 选 择 到 新 建 的 目 录 E:\upload , 输 入 文 件 名 为 “upload”,见图1-16,单击完成键“Finish”,系统自 动用上面输入的应用名称加上扩展名“.pbl”和“.pbt” 组成库名upload.pbl以及目标文件名upload.pbt。
PowerBuilde教程
PowerBuilder 简介通过本章的学习,您将:❑ 简单了解PowerBuilder 和Sybase 的历史;❑ 了解PowerBuilder 的面向对象开发技术;❑ 了解OLE 技术和事件驱动编程方式;❑ 了解PowerBuilder 9.0的新增功能;❑ 基本掌握PowerBuilder 9.0的开发环境。
1 第章PowerBuilder 9.0快速入门篇·2·1.1 PowerBuilder 和Sybase 的历史PowerBuilder 是PowerSoft 公司于1991年发布的软件,最早版本为PowerBuilder 1.0。
1994年,PowerSoft 公司收购了Waicom 公司,同时推出了InfoMaker 产品;1995年也是非常有历史性的一年,Sybase 公司和Powersoft 公司合并,成为世界第六大独立软件商,而且发布的System 11是符合工业标准的高性能、高可用性、易扩展的新一代SQL Server 产品;1996年,Sybase 公司收购了Visual Components 公司,同时推出了最经典的一个PowerBuilder 版本——PowerBuilder 5.0;接着,Sybase 公司又于1997年推出了Adaptive Server Enterprise11.5、Jaguar CTS1.1、PowerBuilder 6.0、Power++ 2.0、PowerJ 2.0、PowerSite 、PowerDesigner 6.0。
但是PowerBuilder 6.0由于存在不少Bug ,最终升级为PowerBuiler 6.5这个相对成熟的版本。
直到现在,很多PowerBuilder 程序员都一直在使用这个版本。
1999—2000年推出了PowerBuilder 7.0,它采用了全新的框架结构,开发环境和以前的PowerBuilder 完全不一样;2001年推出的PowerBuilder 8.0和2003年推出的PowerBuilder 9.0都采用了与PowerBuilder 7.0相同的框架结构。
PowerBuilder培训讲义
目录第一讲面向对象与PB开发环境 ............................................ 错误!未定义书签。
一.开发工具总体介绍.......................................................... 错误!未定义书签。
二.面向对象技术与可视化开发环境.................................. 错误!未定义书签。
1.面向对象技术................................................................. 错误!未定义书签。
2.PowerBuilder可视化开发环境 ..................................... 错误!未定义书签。
三.熟悉开发环境.................................................................. 错误!未定义书签。
四.应用程序开发步骤.......................................................... 错误!未定义书签。
第二讲应用对象与事务对象 ................................................... 错误!未定义书签。
一.应用对象和应用对象画笔.............................................. 错误!未定义书签。
1.应用对象......................................................................... 错误!未定义书签。
2.应用库............................................................................. 错误!未定义书签。
第一章 PowerBuilder简介
PowerBuilder 简介
2
本章要点
1
PowerBuilder 概述 PowerBuilder 的主要特点 PowerBuilder 的历史 集成开发环境 窗口、菜单和工具条 画板和布局 PowerBuilder 开发功能 PowerBuilder 应用系统的体系结构 PowerBuilder 面向对象技术 应用程序示例 创建对象,设置属性,编写脚本 本章小结
19
PowerBuilder 10.0 的新特性
PowerBuilder 10.0 是按照4GL+ 的发展方向开发的,开发环 境紧密集成了设计、建模、开发、部署和管理功能。为.NET 开 发工具提供了一套 工具,这项专利技术简化了 应用开发和设计。 XML Web DataWindow 优化了 Web DataWindow 性能 完全支持 Unicode,可以进行国际化应用开发 使用Unicode 使不同字符集能够在同一行中显示,不同 语言可以共存在同一个窗口中显示。使用PowerBuilder 编写 的应用程序,只需编写一次,就可以向使用各种语言文字的 其他国家和文化的人们发布。 支持代码重构(Refactoring)和对象建模 支持,支持 接口
13
PowerBuilder 的主要特点
可视化的开发环境 面向对象的开发工具 功能强大的编程语言 独一无二的数据窗口技术 企业数据库的连接能力 多平台的开发环境 网络应用程序的开发 强大的查询、报表和图形功能 PowerBuilder提供的可视化查询生成器和多个表的快速 选择器可以建立查询对象,并把查询结果作为各种报表的数 据来源。PowerBuilder主要适用于管理信息系统的开发,特 别是客户机/服务器结构。
10
PowerBuilder 的主要特点
PowerBuilder讲义
2.1.3 客户/服务器应用模式
文件服务器结构的费用虽低,但和大型机的集中式结构相比,缺乏足够的计算 和处理能力.为了解决费用和性能的矛盾,客户/服务器结构便应运而生。 这种结构允许应用程序分别在客户工作站和服务器(注意不再是文件服 务器)上执行。可以合理地分配应用程序,充分发挥客户工作站和服务 器两个方面的功能。
2.2.2 PowerBuilder中的面向对象
1.PowerBuilder的对象 在PowerBuilder中,对象是指像窗口和按钮这样的控件。通过右击 该对象,然后从弹出的菜单中选择Properties就可以打开属性窗 口,修改它的属性。该属性窗口是具有多个标签的对话框,其中 许多选项可以设置。 用户也可以在运行时用代码改变对象的属性。用点符号的方法,在 运行时几乎可以访问一个对象的所有属性。 调用对象的方法和调用对象的属性一样,也要用到点符号,例如: Cb_close.Text=“关闭” 修改对象的属性 Cb_close.setFocus 调用对象的方法
第一页
上一页 下一页
最后 一页
结束 放映
2.1.2 文件服务器应用模式
在客户/服务器结构中,应用程序或应用逻辑可以根据需要划分在服务器和 客户工作站中,使这些应用程序协同工作完成特定任务。客户工作站向 服务器发送的是处理请求,而不是文件请求,服务器返回的是处理结果, 而不是整个文件。 客户/服务器结构最流行的领域就是数据库应用领域。比较著名的数据库都 提供了支持客户/服务器结构的数据库管理系统,如MS SQL Server、 Sybase adaptive Server和Oracle等。 在客户/服务器结构中,我们常把客户端称为前台或前端客户,把服务器称 做后台或后台服务器。 客户/服务器结构的核心是当前端用户需要后台服务器服务时,仅仅发出请 求,服务器接收该请求后,执行相应的功能,把满足条件的数据反馈给 前台客户端,查询和操作都在服务器上完成。服务器有理由配置一台高 性能的计算机,所有的客户端可以从中受益。 客户/服务器结构的另一个主要特点是数据库服务器平台与客户端无关。它 向客户端提供一个开放的使用环境,客户端的用户通过数据库接口和SQL 语言访问数据库,不管客户端采用什么硬件和软件环境,只要通过网络 协议和数据库接口程序连接到服务器就可以对数据进行访问。
PowerBuilder第17讲PBL库管理器应用
2013年9月23日
同样,对每一个动态库,我们也可以在 “Resource File Name”列的相应行上指 定资源文件的名称,其意义和作用与在 “Resource File Name”编辑框中指定资 源文件名相同,参看前面的介绍。
第26页
2013年9月23日
“Code Generation Options ”选项组:用于设置代码生 成选项。选中复选框“Machine Code”时后,可以把应 用程序编译成机器代码,否则应用程序编译成 PowerBuilder伪代码格式(P-Code)。该组框中其它选 项的意义为:
– “Trace Information”复选框:指定是否在可执行代码中包含调 试信息,选中时包含调试信息,否则不包含。该选项只对生成机 器代码的可执行文件有效,对伪代码格式的可执行文件来说,总 是包含调试信息。一般来说,最终交付用户时,不要选中该选项, 这样将缩短可执行文件的长度。 – “Error Context Information”复选框:指定程序运行出错时是 否显示上下文相关的出错信息,该选项只对生成机器代码的可执 行文件有效。
第6页
2013年9月23日
1、按类型组织对象 这种方式把所有同类对象放置在一个库中,例如,所有窗口 对象放到一个库,数据窗口对象放到另一个库等。这种 方法的优点是: ◆方法简单; ◆易于查找所需对象。 缺点为:大型项目中,应用库会变的非常庞大。 2、按应用程序子系统组织对象 这种方法把一个子系统中的对象放置在一个应用库中,其优 点是减少了应用库的大小,能够将子系统拼接到不同的 应用程序上。其缺点是最终导致产生大量应用库。
第10页
库文件的创建
– 单击PainterBar1工具栏中的 图标,打开“Create Library”对话框,在“文件名”文本框中输入库文件 名称,并选择库文件的存放路径。单击“保存”按钮, 弹出“Properties”对话框,在此对话框中输入库文件 的描述信息,填写描述信息后,单击“OK”按钮,实 现库文件的创建。
PowerBuilder培训(中高级)
事件——用户事件
• 用户事件的使用场合
– 解决用户对象与窗口之间的通讯问题。用户事件可以 通过参数进行信息传递。
– 响应特殊操作,这些操作没有相应的PowerBuilder预定 义事件。例如,我们希望用户按下Enter键后将输入焦 点从一个单行编辑框移动到下一个单行编辑框(正常 情况下需要按Tab键);再如,在数据窗口控件中,当 用户输入焦点定位在最后一行后,再按Enter键时插入 一个空行等。
Long
SqlnRows Long
SqlDbCode Long
数据库厂商的名称 要连接的数据库名称 与数据库连接的用户名或用户标识 对应UserID的密码 用于连接数据库的隔离层 登录数据库服务器所需的用户名 对应LogID的密码 数据库服务器所在的网络名称 定义应用程序是自动提交事务还是手工提交事务
– 持久性——事务完成之后,它对于系统的影响是永久性的。该修改即使 出现系统故障也将一直保持。
事务
• PB中的事务介绍
– PB中事务对象:transaction object:sqlca – 可以自定义事务对象
Transaction gTrans_yzcx gTrans_yzcx = Create Transaction gTrans_yzcx.DBMS = “……” ……
– Gf_Rollback_TrnasAction(sqlca)
Rollback Using ao_Environment; if ao_Environment.SQLCode<>0 then return False ao_Environment.AutoCommit = True if ao_Environment.SQLCode<>0 then return False return True
第五讲 PowerBuilder与数据库
在上几讲我们已经讲解了有关PowerBuilder的基本知识。
这一讲,我们将着重学习PowerBuilder提供的数据库接口引擎,以及如何在实际应用中建立PowerBuilder的数据库连接。
好了,我们先简单介绍一下PowerBuilder的提供的数据库接口。
5.1PowerBuilder的提供的数据库接口什么是数据库管理系统(DBMS)大家知道,客户机/服务器结构(Client/Server结构)已经成为计算机体系结构的主流,客户机/服务器结构在英文中叫做Client/Server,Client/Server这个名词的响亮程度与普及范围目前几乎能与Internet相媲美。
PowerBuilder对数据库强有力的广泛支持和操纵能力,是开发数据库应用程序的前端首选开发工具。
特别在开发以大型数据库(如MS的SQL_Server)为后台的大型C/S模式的MIS软件系统时,更能体现出PB的优越性。
好了,现在让我们来感受一下PB强大的数据接口功能。
5.2PB如何与数据库建立连接好了,说了这么多的理论知识,看上去挺复杂的,实际不然。
PowerBuilder在数据库管理上具有很好的平台无关性。
PB只要通过ODBC和DBI(DataBase Interface,数据库接口),可以透明地操作各种DBMS,用户没有必要去理解内部复杂的数据库引擎和结构。
下面,让我们看看PB是如何与数据库建立连接的。
PB通过事先做好的各种大小的通道(标准接口),包括专业通道、公用的通道,这些通道都是分别适用于各种DBMS的通道口径。
方便有效地访问数据库是PowerBuilder的重要特色之一。
PowerBuilder与数据库的连接是建立在驱动程序之上。
从图中我们可以发现PowerBuilder与数据库的连接通过数据库接口来实现,PowerBuilder提供了两类接口:ODBC接口和专用接口。
5.3通过ODBC连接数据库现在,我们知道如何打开ODBC数据源配置窗口后,下面我们将介绍如何通过ODBC 界面连接数据库。
《PowerBuilder程序设计》教学方法探讨
《PowerBuilder程序设计》教学方法探讨
吴晓丹
【期刊名称】《科技信息》
【年(卷),期】2010(000)001
【摘要】本文在分析<PowerBuilder 程序设计>课堂教学现状的基础上,结合该课程的特点对其课堂教学方法进行了探讨.
【总页数】2页(P146,113)
【作者】吴晓丹
【作者单位】华北科技学院计算机系,中国,北京,101601
【正文语种】中文
【相关文献】
1."PowerBuilder程序设计"教学探讨 [J], 卢守东
2.“PowerBuilder程序设计”教学探讨 [J], 卢守东
3.PowerBuilder程序设计对HIS数据库效率影响分析 [J], 张胜昌
4.案例教学法在PowerBuilder程序设计教学中的应用 [J], 董崇杰;郑慧君;曹文梁
5.程序设计语言中三种基本程序设计结构的教学方法探讨 [J], 孙勤红;朱颖雯因版权原因,仅展示原文概要,查看原文内容请购买。
PowerBuilder使用入门 第二讲 在应用程序中增加对象
PowerBuilder使用入门第二讲在应用程序中增加对象
孙洪林
【期刊名称】《中国计算机用户》
【年(卷),期】1996(000)010
【摘要】在第一讲中,生成的应用程序已有一定规模;在这一讲中,我们将继续增加
一些窗口:菜单等对象,并用PowerScript语言来调用它们,使程序的功能进一步完善。
一、在窗口中增加控制对象要在窗口中再增加一些对象,则按图1中的Window,
选择w-gwmain窗。
如图4所示,在相应的位置上增加相应的控制对象(菜单menumain下面再讲):st1和st2都是静态文本提示;sletotal单行编辑,显示当前
满足条件的记录总数;slecurrent单行编辑,显示用户选中的是第几条记录;dw1
【总页数】3页(P44-46)
【作者】孙洪林
【作者单位】无
【正文语种】中文
【中图分类】TP317
【相关文献】
1.PowerBuilder用户对象在开发分布式应用程序中的应用 [J], 陈亚峰;李华民;李玲;于国萍;刘海林
2.PowerBuilder使用入门第一讲开发一个简单的应用程序 [J], 孙洪林
3.PowerBuilder使用入门第三讲在应用程序中使用数据库 [J], 孙洪林
4.PowerBuilder使用入门第四讲 PB与DLL,OLE,DDE [J], 孙洪林
5.Windows3.1编程入门系列讲座(中)第二讲windows3.1应用程序的编程模式[J], 李晓华
因版权原因,仅展示原文概要,查看原文内容请购买。
PowerBuilder应用技巧讲座(一)
PowerBuilder应用技巧讲座(一)
张志远
【期刊名称】《电脑编程技巧与维护》
【年(卷),期】2003(000)006
【摘要】PowerBuilder(以下简称PB)是一个用来进行客户/服务器开发的完全可视化开发环境,采用面向对象技术、图形化应用开发环境,是数据库的前端开发工具,可以用一种可视的直观的方式来创建应用程序的用户界面和数据库接口。
所开发的应用系统广泛地应用于金融、证券、邮电、商业等各个部门和各个领域,并发挥了巨大的作用。
据有关方面统计,PB在中国数据库前端开发市场占有率目前达到40%左右。
【总页数】4页(P12-15)
【作者】张志远
【作者单位】无
【正文语种】中文
【中图分类】TP311.13
【相关文献】
1.PowerBuilder应用技巧讲座(二)--之游标技术及查询方法 [J], 张志远
2.PowerBuilder应用技巧讲座(三)--之数据窗口及打印程序的实现 [J], 张志远
3.PowerBuilder应用技巧讲座(四)--PB基础类库及外部函数与外部程序的调用[J], 张志远
4.PowerBuilder应用技巧讲座(五)--powerBuilder中调用公用控件动态链接库实
现IP地址控件 [J], 张志远
5.PowerBuilder应用技巧讲座(六)--程序的调试和安装 [J], 张志远
因版权原因,仅展示原文概要,查看原文内容请购买。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
PowerBuilder技术讲座(摘自计算机世界报)整理:刘文东时间:2013年9月4日0:13:09 编者按:PowerBuilder是美国Powersoft公司于90年代初推出的基于客户/服务器体系结构的面向对象的数据库开发工具。
该产品一上市即深受广大应用开发人员的喜爱,因此迅速占领市场,目前几乎已发展成为前端工具的事实上的标准。
著名数据库软件公司Sybase收购Powersoft公司以后,PowerBuilder通过Sybase较早地介绍给了中国用户。
1994年Powersoft公司又在北京建立办事处,PowerBuilder便广泛为中国的用户接受和使用。
所开发的应用已广泛地应用于金融、证券、邮电、商业等各个部门和各个领域,并发挥着巨大的作用。
据有关方面统计,PowerBuilder在中国的市场占有率目前已达40%左右。
Sybase公司及其代理商在从事PowerBuilder的销售、培训和技术支持等服务时,经常发现由于用户来自各个行业,专业背景不同,开发经验不同,再兼之国内的有关书籍和资料较少,因此造成用户对Power-Builder的很多特性不甚了解, 在进行深入开发时遇到了很多困难。
鉴于此,开办PowerBuilder应用开发系列讲座,本讲座面向正在使用PowerBuilder进行开发的读者,主要讨论使用PowerBuilder进行数据库应用开发的经验和开发技巧。
PowerBuilder应用开发系列讲座(1)数据库的事务管理在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。
为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。
对事务的操作是这样进行的:先定义开始一个事务,然后对数据作修改操作,这时如果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃您所作的所有修改而回到开始事务时的状态。
此外有些数据库支持事务的"存储点(savepoint)这一概念:即在一个事务进程中任意一点您都可以进行当前状态的存储,回退时只是回到你所设定的存储点,而不必退回全部的事务。
如果您的事务可以分成几组对数据库的修改,那就可以设置多个存储点,根据需要您可以回退到任意一个存储点,而不使所有事务的修改数据全部丢失。
正确地管理事务可以保证数据的完整性,当您所做的工作全部完成和得到确认之前,没有任何数据物理地写进数据库。
让我们来看这样一个实例,我们有这样一个银行应用系统,前台使用者作出将储户甲的一百元存款划归储户乙帐下的操作;在后台的数据库中,这两个客户的记录分储在两张表中,当使用者在屏幕上作出如上操作时,在后台需要对两张表进行修改。
如果在数据库中对甲用户存款余款作减去一百元修改后,对乙用户加一百元的操作修改却失败时,前一张表也必须回到修改前的状态,否则数据库的内容不统一,甲储户白白损失一百元,信息必然是不正确的。
因此进行事务管理是必须的。
传统地,我们认为一个事务包括了对一个或多个表的修改,而随着分布式数据库和数据仓库的发展,事务可能包括了对一个或多个数据库的修改。
在上例中甲乙两用户就可能是异地用户,信息分储在不同地域的不同数据库中,上述的一个事务就涉及到了对不同数据库的操作。
PowerBuilder中的事务管理作为数据库的前台开发工具Power-Builder支持事务管理的操作。
在Power-Builder中有一种称作事务(transaction)的对象,这个对象是PowerBuilder应用与数据库的通讯区域。
PowerBuilder在应用开始时建立一个全局的事务对象SQLCA。
由于大多数的应用只用到一个数据库,所以一般开发者主要也只用SQLCA作为与唯一数据库连接的事务对象。
PowerScript中常用的事务管理的语句有四个:COMMIT,ROLLBACK,CONNECT,DISCONNECT。
当您需要应用与数据库建立连接时使用CONNECT这一操作命令,取消连接时执行DISCONNECT,这两个命令一般分别用在应用的开始和结束,也就是Appli-cation的Open和Close事件中。
当一个事务的数据库修改都成功地完成后,修改须提交给数据库,COM-MIT语句是一个旧事务结束和一个新事务开始的界线。
在修改被提交前,数据库的数据并没有被真正地修改,这些修改被保留在某个工作区,只有作修改的用户才能看到这些被修改后的值,提交之后,则所有的用户就都可以看到新值了。
在事务的进程中发生某些错误,或者在操作中出于种种原因打算中止事务,须用ROLLBACK命令回退事务,如果已作的操作不用ROLLBACK命令取消,这些操作必将错误地作为下一个事务的一部分而导致数据库的混乱。
如果您使用的是多窗口的应用,却只用一个事务对象,就应格外注意ROLL-BACK和COMMIT会影响事务的逻辑一致性。
在某个窗口执行的这两个指令会使其他窗口应用中所进行到一半的工作提交或回退。
在多用户系统中,修改和提交的时间越接近,提交成功的可能性就越高。
因为一个事务中所有的SQL 语句全部执行成功而提交却失败是完全可能发生的,例如在您的事务过程中,另一个用户修改了数据并提交,这很可能使您作出的修改无效,这时COMMIT将失败,您必须回退这一事务的全部。
事务对象的AutoCommit属性事务对象有一个AutoCom-mit的属性可以使开发者简化对事务管理的操作,这一布尔型的属性可以用TRUE或FALSE来对其赋值。
当其为真时,PowerBuilder不通过其他额外的交互就将您的SQL语句传输给后台数据库,而且执行完毕自动提交。
当然,您可以设置AutoCommit属性为假(缺省值),使用COMMIT或ROLLBACK这样的关键词提交或回退事务。
在大多数应用中,一部分的数据库操作是要成组提交的,而另一些则不用。
因此我们可以利用AutoCommit的特性来确定事务的起点,当我们把AutoCommit的属性设为False时,系统设定此时为事务的起点。
当AutoCommit设为真时,系统自动消取这一事务。
因此你可以先把AutoCommit设为真,当您需要开始一个事务时,将其置为false,此刻即为事务起始点。
PowerBuilder内部这种事务管理的最大优点是方便。
您不去考虑整个事务,而只需把您所作的修改提交或滚回即可。
但是方便与可控性总是矛盾的,在Power-Builder中没有存储点和嵌套事务管理的机制,即使您所使用的数据库支持这些特性,在PowerBuilder中却无法得以体现。
不过在普通的应用中,存储点和嵌套事务管理并不是必须的,一般的事务管理足以够用。
用数据库的事务管理指令实现完全控制上述的事务管理方式尽管简单方便,但是在某些应用中,我们也的确需要利用所用的数据库系统的嵌套事务和存储点的特性,而PowerBuilder内部的事务管理没有提供这样的功能,您必须自己设计。
自己进行事务管理的方式是直接使用数据库本身的事务指令。
当您使用自己的管理方式时,就应使Power-Builder停止管理事务,即设置Auto-Commit为TRUE,系统内部就不会自动建构事务处理的命令了。
实现人工事务管理的方式是采用EXECUTE IMMEDIATE这条PowerBuilder指令来执行任意的数据库操作。
你所需做的是将数据库指令编辑成一个字符串,您可以执行任何的数据定义语句如建表、建主键、存储过程等,例如您可以用EXECUTE IMMEDIATE BEGIN TRANSACTION trans-name这样的指令开始一个事务。
采用这种方法,只要您所用的数据库支持嵌套事务和存储点等事务管理,我们通过PowerBuilder开发出的应用也就同样可以实现。
在PowerBuilder中提供的事务管理的方法是多种多样的,只要您灵活运用,就一定能设计出优秀的数据库应用来。
PowerBuilder应用开发系列讲座(2)调用Windows的动态链接库许多熟练使用C的程序员在使用PowerBuilder时都希望自己以前在C上做的工作可以被PowerBuilder引用,这是完全可以的。
在PowerBuilder中你可以通过外部引用函数的形式来调用动态连接库中的函数。
PowerBuilder调用DLL程序使用规则PowerBuilder可以支持任何一种非PowerScript编写,并存储在动态链接库中的外部函数或过程的调用。
但外部函数的参数必须是符合Pascal规则的(即参数压栈顺序从前至后)。
在函数调用前,因先作函数声明,PowerBuilder支持以下两种外部函数类型:·全局函数:可以在应用的任意位置调用;·局部外部函数:在window,menu,user object或用户自定义函数等对象中定义。
外部函数声明的语法是:{Access}FUNCTION ReturnDataType Function-Name({REF}{DataTypel Arg1,...,DataTypeN ArgN})LIBRARY LibName外部过程声明的语法是:{Access}SUBROUTION Subroutine({REF}{DataType1 Arg1,...,DataTypeN ArgN}) 如果您使用的是局部外部函数的声明,您还可以指定对象的访问权限:Public,Private,Protected。
对局部函数权限访问的限制同对对象的实例变量的限制相同。
您可以指定对象名加函数名的方式调用外部函数:object.function(arguments)如在window的w_emp上调用局部外部函数Recog(),就可这样使用:w_emp.Recog()如何在PowerBuilder与DLL之间传递参数在PowerBuilder的script中调用DLL中的函数,缺省情况下是通过传值法来传递参数(passed by value),也就是说PowerBuilder将对要传递的参数做一份拷贝,然后通过堆栈将这份拷贝传递给函数。
如果你希望DLL中的函数可以改变调用参数的原值,就可以通过参考传值法(passed by reference)来传递参数,即在参数类型前面加REF关键字来声明该参数将要用参考传值法。
在使用DLL时有一些基本规则:在MS Windows中,一个DLL在被装入内存后,只会有一个实例,不会因为多个程序使用同一个DLL而在内存中产生多个DLL拷贝。
每个DLL只有一个最大为64K的数据段。