PowerBuilder9教程
PowerBuilder 程序设计与系统开发®
PowerBuilder9教程
PowerBuilder 程序设计与系统 开发 内容介绍 大纲进度 考试方法 第一章、PowerBuilder基本原理 第二章、基本知识(C/S,数据库) 第三章、对象及控件的基本属性及方法; 第四章、数据窗控件(Datawindow)的特性及方法; 第五章、基本应用(Application)的建立; 第六章、PFC(Powerbuilder Founder Class)技术原理及实现。 第七章、与数据库系统集成进行开发基本技术及方法; 第八章、高级编程技术
PowerBuilder9教程
内容简介 关于 PB(About PowerBuilder). 使用场合(Where)? 谁需要 (Who)? 工与数据库交互原理(How)? 学习内容(课程内容)(What)?
PowerBuilder9教程
关于 PowerBuilderPowerBuilder 最早是由PowerSoft公司开发并发布销售的, 并出品了到PowerBuilder5.0为止的各个版本,初期在广大开发人员 中反映并不强烈, 到1995年左右,由Sybase收购PowerSoft公司开始并成功推出了 PowerBuilder 6.0版本,由此开始,由于它的易用性、数据窗专利 技术、对各种流行RDBMS的广泛支持、独特的开发方法及理念、 独特的对象编程技术等等,成为现在为止可能是世界上用于数据库 前端开发的最快捷、最方便、最强大的工具,一般而言,对一个小 型的系统,在充分分析好的前提下,熟悉的程序员可以在一周以内 完成一个独立的系统。这对于其他数据库系统前端开发工具,如 VB,Delphi,VFP,ORACLE Develop2000等等,如果你用过这些工具, 简直无法想象。 虽然现在流行的开发工具并不是PB,因为现在到处都是B2B,B2C, PB在这方面能够实现,但比较其它专门工具而言,并不具有非常大 的优势,而且实现的技术比较而言相对复杂。但对于S/C结构的数 据库应用及Intrnet而言,PowerBuilder仍然是非常好的选择。
PowerBuilder9教程
PowerBuilder的发展史2003年发布 PowerBuilder9.01996年发布 PowerBuilder5.0 1995年8月Sybase与 Powersoft公司合并 1991年6月发布 PowerBuilder1.0 1987年改名为 PowerSoft 1974年Kertzman创建 Computer Solutions公司 1984年Mark Hoffman 和 Bob Epstein共同创立 Sybase
PowerBuilder9教程
PowerBuilder应用场合1、大型数据库系统C/S模式前端开发工具或B/S模式应用服务器开发工具, 一般应用于需要大型或中型数据库系统支持(如ORACLE,Sybase,MS SQL Server,DB2,Informix)作为后台数据支撑平台的管理类系统,一 般可以承受千万级纪录量的系统,如: · MRPII系统 – 物料资源计划 · ERP系统 – 企业资源计划 · CRM – Customer Relation Management(客户关系管理) · Call Center – 呼叫中心(Haier) 2、中、小型数据库系统开发,一般数据量为10万左右,支持并发或仅单机 用户,如中、小型企业的内部信息管理、各种小型软件、共享软件等; 3、与Sybase的PowerDynamo,Jaguar CTS,PowerSite等集成,建立电子
商 务应用服务支撑平台; 4、与PHP,Java,ASP集成,作为Intranet或Internet的后台数据库系统维护 工具,如异种平台(Unix,Linux,Solaris,NT)上的ORACLE,MySQL,DB2 等的Client方式维护。
PowerBuilder9教程
谁需要 PowerBuilderPB可以做的事情很多,因此也就成为现在各软件公司进行系统开发的一 种常用工具,如果你将从事下列工作或有这些需求,则最好了解或通晓PB: 1、数据库系统前端开发中的程序设计; 2、开发咨询或技术支撑; 3、数据库系统分析及设计; 4、需要掌握VB,Delphi,Developer 2000以外的其他工具; 5、了解Internet网站建设中可以保护现有PB资源的开发方式; …… 注意: PB与数据库系统是不可分离的,因此,你只有对DBMS有基本的理解才 可能用好PB,精通当然最好。 如果你不知道DBMS是什么东西,请先学习相关内容,南京大学<数据库 系统概论>是非常好的入门教材,各流行数据库系统的基本概念都涵盖了。
PowerBuilder9教程
PB 与数据库交互原理简介PowerBuilder的吸引人的地方也就是它的数据窗技术,描述为: 1、前端(Client)建立独立的Transaction(缓冲区,事务对象),用 于响应用户请求及返回执行结果; 2、任何事务都必须在某Transaction中执行,默认为 SQLCA(SQL Connection Area),如 select * from table_xxx using sqlca; Dw_xxx.settransobject(sqlca); 3、数据窗通过Transaction提取数据、编辑数据、再根据需要回 写数据,并保证在同一事务内,这样就完成了日常的数据的维护、 更新等操作。 4、数据窗现在已经作为标准的ActivX可编程对象,可以嵌入到 其他程序中使用,但总是在PB中最方便,具有专利技术的数据窗集 成了数据编辑的几乎所有的常用算法、操作方式等等,非常方便。 5、实际应用中,通过众多的数据窗和其它标准 Windows控件协 调运行,就完成了最基本的功能。 实际上远远不止这些……
PowerBuilder9教程
大纲进度(课程内容)学分:2+1(多媒体教室授课2,上机1) 内容: PowerBuilder基本原理; PB基本知识(对象、函数、事件、变量、脚本、继 承); 对象及控件的基本属性及方法; 数据窗控件(Datawindow)的特性及方法; 基本应用(Application)的建立; 与数据库系统集成进行开发基本技术及方法; PFC(Powerbuilder Founder Class)技术基本原理; 自己动手做东西。
PowerBuilder9教程
PowerBuilder基本原理 编程原理 开发界面 库(Library)管理 基本对象及控件 运行方式
PowerBuilder9教程
PowerBuilder运行原理开发支持库 Pblib.dll Pbcmp.dll Pbudo.dll Pbrtc.dll …运行支持库 PBvm70.dll PBdwe70.dll Libjcc.dll Pbo8470.dll Pbrtc.dll …… YouOcx.OCX YouLIb.DLL …… 开发(PBLs) BugFixing
编译(Pcode,Mcode)
DBMS
应用(Application:DLL,Exe,PBD)
发布(InstallShield)
PowerBuilder9教程
PowerBuilder基本原理 - 开发界 面 菜
单工具条 预览
对象属 性面板
脚本函数及 事件 状态条
PowerBuilder9教程
PowerBuilder基本原理 - 开发界 说明: 面1、PB开发为标准的MDI方式,即对应不同的开发对象,有它不同的菜单及工具条, 对应不同的功能; 2、可以创建的对象包括4大类: 对象(窗口、函数、结构、菜单……) 数据窗对象(Grid,Free Form,Tabular,Label,N-Up……) 数据库(Database Profile,Query,Pipeline) 工程(Application,Proxy Library,COM CTS, OLE2,Java Proxy……) 3、常用工具 Library,Editor,Class view Browser,DB Profile Editor, Debugger,DW Syntax等
PowerBuilder9教程
数据库基本知识 -1一、C/S模式图示WinNT,Linux,UnixMicrosoft SQL Server ORACLE Sybase,DB2,Informix
Servers返回SQL语句 查询结果到客户机 发送SQL语句 到数据库服务器
DB ServersTCP/IP
Clients
Clients
Clients
1、客户端运行自己的程序,向服务器发送SQL请求及取回结果。 2、服务器侦听网络,响应请求并返回处理结果。
PowerBuilder9教程
数据库基本知识 -2二、数据库系统基本组成
物理设备网络,协议介质,接口
DBMS
Applications (应用)
DB Tools (管理工具)
存储管理 数据库管理 数据库中的对象管理 1.表单 2.视图 3.触发器 4.索引 5.存储过程 4.函数、包
PowerBuilder9教程
数据库基本知识 -3三、关系数据库系统基本概念 表单(Table):由属性和记录构成的二维关系表; 视图(View):基于单表或多表的查询; 存储过程(Store procedure):存储于数据库服务器上的一系列操作的合集, 由服务器执行,可以增强可管理性和运行效率; 触发器(Triggers):当对表的某种操作发生时,就引发其他的一些逻辑处理; 索引(Index):服务于快速查询,寄生于表的一种服务; 函数,包(function,package):类似于存储过程; 数据库(database):上述各对象的集合; 设备(device,tablespace,datafile):存放数据库的物理定义; 日志(log):记录对数据库的任何操作,用于备份和恢复; 用户(User):可以使用数据库中具体内容的人员定义; 角色(Role):给同一用户赋予不同的角色,享有不同的权限; 权限(Privilege):赋予用户操作数据的权限;
PowerBuilder9教程
数据库基本知识 -4四、ASA中的数据库管理Sybase 随PB发行的Adaptive Server Anywhere (ASA) 6.0 是短小精悍的 个人数据库系统,支持了大多数的关系数据库操作。如日志、事务、用户、 触发器,并提供管理中心(Sybase central)来管理数据库的内容, 在PB中,一个小型的数据库应用用ASA作为后台数据库已经完全可以 胜任。本课程的后台数据库将主要放在ASA。 Sybase Central实际上是以插件方式运行的,他可以管理Sybase产品中 的大多数,如Sybase Enterprise (SYE)数据库, Jugar CTS PowerDynamo, 等 等.提供了统一的界面。当然也可以通过SQL语句来管理数据库。包括建表、
索引、存储过程、触发器,数据更新,授权等等都可以通过SQL语句来执行。 下面将通过演示来讲解关于Sybase Central的使用,特别是如何建库, 建表等操作。
PowerBuilder9教程
应用 - Applicaiton 如何建立应用(Application) 事件及脚本(Events and Scripts) 连接(Transaction) 入口(Start Pointer)
PowerBuilder9教程
应用 - 1.建立1、Menu->File->New->Application (菜单-文件->新建->开始向导->Application) 2、选择应用名称和存放的库文件 一个应用就建立完毕。实际上这个应用没有任何脚本、窗口,也没有处理任何事情。 应用建立完毕后,PB自动建立了一个PBL文件(PowerBuilder Library),并在这个PBL文件 中创建了一个Application entry(应用条目) 一般,一个应用都有一个主窗口,由这个窗口负责和用户的交互过程,而在应用的open事件 的脚本中处理的就是如何打开这个窗口,如何和数据库建立连接,如何初始化一些全局变量, 关闭应用时(Close事件)做如何处理等等。如: Open事件: ……. connect using sqlca; open(w_main_frame) Close事件: disconnect using sqlca; destroy xxxx 就是在 譬如,建立应用名为pb_lesson,存放库名为lesson.pbl,则在lesson.pbl中就存在了一个 pb_lesson的条目,当然,可以在其他pbl中创建一个新的application.
PowerBuilder9教程
应用 - 2.事件及用途(1)Application的事件 Open 当一个应用执行时,即触发此事件,实际上就是程序的入口,一般处理一些公用变量,公用对象, 连接数据库,打开主窗口等操作; Close 当主窗口关闭后触发此事件,如果没有打开任何窗口,则在Open事件后直接触发此事件,一般在 这个事件中断开连接,清除变量等操作; Connectiongbegin 当连接开始时触发此事件,由connect 函数直接触发此事件 Connectionend 当连接结束后触发此事件,由disconnect函数触发 Idle idle(xxx second)函数触发,既当系统处于等待状态指定秒数xxx后触发该事件,一般处理如关闭系 统,提醒用户等 Systemerror 当程序运行发生任何系统错误时触发该事件,一般处理记录错误,提醒用户等操作。 常用事件:open,close,systemerror
PowerBuilder9教程
应用 - 2.事件及用途(2)脚本(scripts)编写基本知识 · 一般依赖于某事件或函数,由事件或函数触发而执行,由换行或;表明一条语句的结束,如 Connect using sqlca; Open(w_main_frame) Disconnect using sqlca; · 任何嵌入式SQL都必须用;来表明该语句的结束,如 Select student_name into :ls_name from table_1 where col_1 = hello ; · 大小写不敏感,如ls_name 和LS_Name表明同一个变量或对象 · 可以在一行写多条语句,用;隔开。如 ls_name= xxx ;ls_name2= yyy ;li_cnt=2; · 变量或对象的引用前必须声明,如 stirng ls_name= abc //初始值 ls_name= Liujiangang Messagebox( Hello , My Name is +
ls_name) 就是弹出一个消息框,并提示标题为Hello,内容为 My Name is Liujiangang 的内容。并显示确认按 钮用来接受用户响应。