PB从入门到精通
- 格式:pdf
- 大小:7.45 MB
- 文档页数:69
第五章数据窗口数据窗口是PowerBuilder的一大特色,PowerBuilder作为一种数据库前端开发工具,操作的核心是数据库中的数据。
而数据窗口是一个对象,它包含了对数据库中的数据进行特定操作的信息。
只要定义好一个数据窗口对象,以后就可以在多个应用程序中使用这个数据窗口对象,总之,可以把数据窗口看作封装了对数据库中的数据操作的对象,它极大地方便了应用程序对数据库的使用。
5.1 建立数据窗口对象5.2 对数据窗口的操作第五章数据窗口5.1 建立数据窗口对象要建立数据窗口对象,系统首先必须与要访问的数据库相连,这里不妨连接PowerBuilder 自带的范例数据库POWERSOFT DEMO DB V6(这里版本不同,数据库的名字也不同,可能会是V5,笔者用的是v6.0,所以自带的是V6),接下来就可以创建数据窗口对象。
单击POWERBAR工具条上的DATA WINDOW按钮,系统弹出SELECT DATAWINDOW对话框,对话框中列出了当前数据库中可用的数据窗口对象。
单击NEW按钮,开始创建一个新的数据窗口对象。
弹出的NEW DATAWINDOW用来选择要创建的数据窗口对象的数据源和显示风格。
从对话框中可以看出数据窗口对象可以有五种数据源和十一种数据显示风格。
这里并不想一一介绍,只介绍其中最常用的几种。
5.1.1 数据显示风格首先看数据显示风格,为了看出各种显示风格的区别,首先选定数据源统一为QUICK SELEC T,然后观察不同显示风格所显示出的数据样式的差别。
选中FREEFORM显示风格,然后单击OK按钮,弹出的QUICK SELECT对话框中选中DEPARTME NT表,单击ADD ALL按钮选中表的所有列,然后单击OK按钮关闭对话框。
单击PAINTERBA R工具条上的PREVIEW按钮,DATAWINDOW画板上显示的数据就是FREEFORM风格的,可以看出FREEFORM风格的数据的特点是一个字段占一行,字段的值就显示在字段的标题后面。
POWERBUILDER教程第一章概述1.1特点1.事件驱动在事件驱动方式中,程序的运行没有固定的流程,程序的代码也是为各种可能发生的事件编写,当程序开始运行后,它可以接受来自系统、用户或其他应用程序触发的事件,然后执行事件代码。
建立窗口、控件和其他应用部件时都含有一组预定义的事件。
例如:clicked(单击),用户也可以定义自己的事件。
2.面向对象Windows应用程序中常见的窗口、菜单、控件在powerbuilder中都是一个个对象。
同时,也可以创建自己的用户对象。
每个对象都有自身的特征和行为(属性、事件和函数)。
Powerbuilder提供了基础类库PFC,它为应用程序开发提供了许多可重用的预定义类和对象,利用基本类库PFC可以快速开发高质量、重用好的应用程序。
3.Powerscript语言Powerbuilder中,所有的处理逻辑都是用powerscript语言编写,powerscript是PowerBuilder是专用语言。
4.强大的数据库窗口对象数据窗口对象是PowerBuilder中的一种对象类型,是专门为访问后台的数据库服务的,在数据窗口对象中可以定义数据的来源和数据的显示风格,这样在应用程序就可以把精力完全放在程序的流程控制上,而不用关心具体数据的来源。
如果需要使用数据库中不同的数据,也只要对数据窗口对象进行修改就可以。
5.其他特点支持internet、支持分布式应用、支持多平台、支持大多数关系型数据库(Sybase、MS SQLSERVER、ORACLE等等以及ODBC等其他数据源)等等1.2安装略注:升级至7.0111.3开发环境IDE1 菜单栏图标第一章库文件工具栏图标第二章对象编辑工具栏图标第三章库文件编辑区第四章对象编辑区第五章Datawindow编辑器1.4 预备知识一个PowerBuilder应用程序一般由若干个窗口组成,每个窗口有若干个控件(如按钮、菜单、文本等),每个对象或控件都有若干个事件(如按钮的单击或双击等),每个事件将对应一段程序。
PB基础知识.数据库的事务管理在数据库中,所谓事务是指一组逻辑操作单元,使数据从一种状态变换到另一种状态。
为确保数据库中数据的一致性,数据的操纵应当是离散的成组的逻辑单元:当它全部完成时,数据的一致性可以保持,而当这个单元中的一部分操作失败,整个事务应全部视为错误,所有从起始点以后的操作应全部回退到开始状态。
对事务的操作是这样进行的:先定义开始一个事务,然后对数据作修改操作,这时如果提交(COMMIT),这些修改就永久地保存下来,如果回退(ROLLBACK),数据库管理系统将放弃您所作的所有修改而回到开始事务时的状态。
此外有些数据库支持事务的"存储点(savepoint)这一概念:即在一个事务进程中任意一点您都可以进行当前状态的存储,回退时只是回到你所设定的存储点,而不必退回全部的事务。
如果您的事务可以分成几组对数据库的修改,那就可以设置多个存储点,根据需要您可以回退到任意一个存储点,而不使所有事务的修改数据全部丢失。
正确地管理事务可以保证数据的完整性,当您所做的工作全部完成和得到确认之前,没有任何数据物理地写进数据库。
让我们来看这样一个实例,我们有这样一个银行应用系统,前台使用者作出将储户甲的一百元存款划归储户乙帐下的操作;在后台的数据库中,这两个客户的记录分储在两张表中,当使用者在屏幕上作出如上操作时,在后台需要对两张表进行修改。
如果在数据库中对甲用户存款余款作减去一百元修改后,对乙用户加一百元的操作修改却失败时,前一张表也必须回到修改前的状态,否则数据库的内容不统一,甲储户白白损失一百元,信息必然是不正确的。
因此进行事务管理是必须的。
传统地,我们认为一个事务包括了对一个或多个表的修改,而随着分布式数据库和数据仓库的发展,事务可能包括了对一个或多个数据库的修改。
在上例中甲乙两用户就可能是异地用户,信息分储在不同地域的不同数据库中,上述的一个事务就涉及到了对不同数据库的操作。
PowerBuilder中的事务管理作为数据库的前台开发工具Power Builder支持事务管理的操作。
Pb1.B/S模式2.对象包括三方面:属性,事件,函数属性——规定了对象的特征;事件——说明对象相应什么样的操作;函数(方法)——封装对象的功能;3.PB主要包括的对象:应用对象,窗口对象,数据窗口对象,菜单,函数,查询,结构,用户对象,工程对象4.系统分析和系统设计——充分了解系统需求5.系统开发——创建对象,描述对象,设置属性建立应用对象;生成用户对象,函数和结构;建立窗口和菜单;创建数据窗口对象,将数据窗口对象连接到窗口上;编写各对象的事件处理程序;调试应用;测试系统;生成EXE文件。
6.PB与数据库的连接通过数据库接口来实现:ODBC接口,专用接口ODBC:开放式数据库互连标准接口,以关系数据库标准查询语言SQL来存取连接到的数据源专用接口:针对具体的数据库管理系统而设计,将PB连接到相应的数据库上。
ODBC接口(1)ODBC应用软件,包括用PB开发的应用程序调用ODBC函数,PB通过动态链接库PBODB60.DLL完成这一功能,对于开发人员来说,该过程是隐含的,由PB自动完成(2)驱动管理程序用ODBC.INI文件把数据源名映射成特定驱动程序的动态链接库处理几个ODBC初始化调用为每个驱动程序提供ODBC的入口点检验ODBC的调用参数和次序(3)驱动程序——处理ODBC函数调用,提交SQL请求到特定的数据源并把结果返回给应用程序。
(4)数据源——要存取的数据以及相关的操作系统,数据库管理系统和网络系统ODBC,PB访问数据库模式:PB应用程序——ODBC接口——数据库到网络的接口——网络——数据库到网络的接口——数据库服务器连接数据库(1)建立或配置与要连接的数据库对应的数据源ODBC数据源:应用ODBC配置面板;(2)建立数据库描述文件或设置连接参数。
(3)连接到ODBC数据库创建应用程序对象1.PB——应用对象代表应用程序,程序从应用对象开始运行,面向对象,用它开发的应用程序以对象和事件为基本特征。
第一章什么是PowerBuilder添加时间: 2006-2-21 23:24:04 作者: 未知阅读次数:11680 来源: 在开始学习PowerBuilder之前,首先要弄清楚的问题是什么是PowerBuilder,它是用来干什么的,它的特点又是什么。
只有知道了PowerBuilder的功能和特点所在,我们才能知道什么时候应该选用PowerBuilder作为我们的应用程序开发工具。
1.1 什么是PowerBuilder我们知道,数据库应用是当前计算机应用的一个非常重要的方面,而在目前的数据库应用技术中普遍采用的就是客户机/服务器体系结构,在这种体系结构中,所有的数据和数据库管理系统都在服务器上,客户机通过采用标准的SQL语句等方式来访问服务器上数据库中的数据。
由于这种体系结构把数据和对数据的管理都统一放在了服务器上。
就保证了数据的安全性和完整性,同时也可以充分利用服务器高性能的特点。
正因为客户机/服务器体系结构的这些优点,因而得到了非常广泛的应用。
PowerBuilder是著名的数据库应用开发工具生产厂商PowerSoft公司推出的产品(PowerSoft现已被数据库厂商Sybase所收购),它完全按照客户机/服务器体系结构研制设计,在客户机/服务器结构中,它使用在客户机中,作为数据库应用程序的开发工具而存在。
由于PowerBuilder采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用PowerBuilder,可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。
在当前,网络技术迅速发展,随之发展的还有OLE,OCX,跨平台等技术,而在PowerBuilder的最新版PowerBuilder 6.0中提供了对这些技术的全面支持。
总之在数据库开发工具领域,PowerBuilder 是其中非常优秀的一个,利用它我们可以开发出功能强大的数据库应用程序。
1.2 PowerBuilder的特点PowerBuilder提供了对目前流行的大多数关系数据库管理系统的支持,由于在PowerBuilder的应用程序中对数据库访问的部分一般采用国际化标准数据库查询语言SQL,使得用PowerBuilder开发的应用程序可以不做修改或者只做少量的修改就可以在不同的后台数据库管理系统上使用。
Pb编程语言深入讲解:巧用goto,控制循环语句流程!
Pb编程语言深入讲解:巧用goto,控制循环语句流程!
本经验由宗龙龙原创,全文共500多字,阅读需要14分钟,如果文中存在错误,还请大家多多指点,我会积极改进的!
第一步:首先,我们先了解一下pb软件的编程界面,和其它编程操作软件类似,大家看图就明白了。
第二步:我们需要重新创建一个新的按钮,这里,我们将我们重新创建的按钮设置为For。
第三步:我们需要在编程区域,输入我们所需要编写的代码,源码大体如下:
//巧用goto,控制循环语句流程
long ll_i
for ll_i=0 to 5
messagebox('',ll_i)
if ll_i>3 then
goto lable
end if
next
lable:
第四步:前面我们急忙点击运行,忘记添加测试所需的输出操作,在这里,我们增加一句话:messagebox('',ll_i)。
第五步:此时,我们可以点击goto按钮,不管你如何操作,输出的窗口永远都不会出现5,知道的小伙伴,可以留言说明原因。
本经验由宗龙龙原创,感谢大家阅读至此,如有其他不明白的地方,欢迎留言说明,其他看到的小伙伴,也互相帮助一下,如果知道,请给予解答。
浅谈PB使用心得
在过去的几年里,我一直在使用PowerBuilder(简称PB)来进行软
件开发。
PowerBuilder是一种基于面向对象编程的集成开发环境(IDE),它可以让开发者使用非常简单的方式来创建和管理企业级应用程序。
在使
用PB的这段时间里,我积累了一些使用心得,现在将它们分享给大家。
另外,PB还有一些其他的特性,使得它成为一种非常强大的开发工具。
首先是PB的数据窗口控件。
数据窗口是PB最重要的控件之一,它支
持多种数据源,包括数据库、文件和Web服务等。
数据窗口具有强大的数
据绑定和自动更新功能,可以大大简化数据的显示和修改操作。
此外,PB
还提供了许多内置的功能和类库,可以帮助开发者完成各种常见的任务,
如文件操作、网络通信和图形处理等。
虽然PB在很多方面都非常强大,但也存在一些不足之处。
首先是PB
的学习曲线较陡。
相对于其他的开发工具和编程语言,PB的概念和语法
是非常独特的。
新手可能需要一段时间来适应这种独特的开发方式。
此外,PB的文档和教程相对较少,这也给初学者带来了一些困惑。
PB培训教程(提高篇)一、引言随着我国经济的快速发展,企业对人才的需求日益增长,专业技能培训成为了提升员工素质的重要途径。
PB(PowerBuilder)作为一款优秀的客户端/服务器应用程序开发工具,具有强大的数据处理能力和灵活的界面设计功能,广泛应用于企业级应用开发。
为了帮助广大PB爱好者提高开发技能,本教程将从实战角度出发,详细讲解PB的高级应用技巧。
二、PB开发环境介绍1.PB简介PowerBuilder(简称PB)是美国Sybase公司推出的一款客户端/服务器应用程序开发工具。
它采用面向对象的编程思想,支持多种数据库,具有强大的数据处理能力和灵活的界面设计功能。
PB在我国的企业级应用开发领域具有广泛的应用。
2.PB开发环境搭建(1)安装PB开发工具:并安装PB开发工具,根据提示完成安装过程。
(2)配置数据库连接:安装并配置数据库软件(如Oracle、SQLServer等),建立数据库连接。
(3)创建PB项目:在PB开发环境中创建新项目,配置项目属性,为后续开发做好准备。
三、PB高级应用技巧1.数据窗口应用(1)数据窗口简介:数据窗口是PB中用于数据显示和编辑的重要组件,具有强大的数据处理能力。
(2)数据窗口设计:掌握数据窗口的设计方法,包括数据源设置、列属性设置、样式设置等。
(3)数据窗口事件处理:了解数据窗口的事件处理机制,掌握常见事件(如Click、DoubleClick等)的编写方法。
(4)数据窗口与数据库交互:学习如何使用数据窗口进行数据的增、删、改、查操作。
2.PB与Web技术结合(1)Web开发简介:了解Web开发的基本概念,掌握、CSS、JavaScript等基本技术。
(2)PBWeb应用程序:学习如何使用PBWeb应用程序,包括Web数据窗口的使用、Web事件处理等。
(3)PB与WebService交互:掌握PB调用WebService的方法,实现PB与WebService的数据交互。
PB培训教程(提高篇)PB培训教程(提高篇)PB( PowerBuilder)是一款流行的集成开发环境(IDE),它是一种用于开发企业级应用程序的工具。
无论是Web应用程序、桌面应用程序,PB都可以胜任。
在企业中,人们使用PB制作的软件可以在不同的系统平台和数据库中实现数据的集成。
在本篇文章中,我们将为大家分享一些提高篇的PB培训教程,帮助读者更好地使用PB进行应用程序开发。
1.利用PB进行线程编程随着计算机处理速度的提高,人们期望计算机可以同时执行多个任务,因此,线程编程变得越来越重要。
PB自带的开发工具和函数库可以帮助您更容易地在应用程序中实现线程编程。
以下是一些线程编程的基本概念:①主线程和子线程主线程是应用程序中的主要执行线程,它通常负责与用户交互和管理应用程序的状态。
子线程可以独立于主线程运行,它通常负责执行后台任务,如文件下载或计算。
②线程同步不同的线程之间通常需要协调执行。
线程同步的目的是确保线程之间的任务执行是有序的。
同步机制包括信号量、互斥锁、互斥量等。
③线程通信不同的线程之间通常需要通信,以便协调执行。
线程通信的目的是允许一个线程向另一个线程传递信息。
常见的线程通信机制包括消息队列、管道等。
在PB中,您可以使用Create和SendMessage函数创建线程,使用ResetEvent和WaitForSingleObject函数同步线程,使用PostThreadMessage和PeekMessage函数进行线程之间的通信。
2.利用PB进行多语言开发多语言开发已成为全球软件开发的重要趋势。
随着各国经济的快速发展,软件企业和产品已经选择了向全球市场推广其产品的策略。
要实现多语言开发,需要考虑最终用户的语言、文化、习惯等。
以下是一些常见的多语言开发方法:①本地化本地化是指调整应用程序以适应特定地区或国家的语言和文化。
本地化涉及到应用程序的所有方面,包括UI、消息框、菜单和帮助文档等。
第四章数据库管理PowerBuilder主要是作为一个数据库应用程序的前端开发工具而被使用。
但它自身也带有一个本地数据库管理系统SYBASE SQL ANYWHERE,利用它可以创建本地数据库并对它进行操作。
由于PowerBuilder无论是和后台的大型数据库相连,还是和PowerBuilder自建的本地数据库相连,原理基本一样,都是采用标准的ODBC接口的方法。
所以不失一般性,在本节中主要以对本地数据库的操作来认识PowerBuilder的数据库方面的内容。
4.1 对数据库的操作4.2 对表的操作4.3 对视图的操作4.4 对数据库中的数据的操作4.1 对数据库的操作下面的过程说明了对数据库进行操作的一般步骤:单击POWERBAR工具条上的DATABASE画板按钮,系统在打开DATABASE窗口的同时弹出SELE CT TABLES对话框,用来选择将要被打开的表,列表框中的表是系统当前所连接的数据库中所有的表,选中其中的某个表,比如选择刚才创建的MYTELEBOOK表,然后单击OPEN按钮,相应的表就出现在数据库画板中,然后就可以对这个表进行各种需要的操作了。
对于后台数据库而言,创建和管理数据库是数据库管理员的事,PowerBuilder不需要干预。
但是对于由PowerBuilder自身创建的本地数据库而言,PowerBuilder则提供了全面的数据库操作支持。
单击FILE菜单的CREATE DATABASE菜单项后,弹出CREATE LOCAL DATABASE 对话框,在这个对话框中选定数据库的存放目录为D:\DATABASE,设定数据库名字为MYDA TABASE,然后单击OK按钮,系统就为我们创建了一个新的数据库,同时自动把这个数据库设为系统当前连接的数据库。
如果要删除一个数据库,只要在FILE菜单中选择DELETE DAT ABASE菜单项,然后在弹出的对话框中选择要删除的数据库就可以了。
8.1 数据管道简介使用POWER BUILDER的时候,我们经常会用到一个重要的功能数据管道(PIPELINE)。
它向用户提供了在数据库内部、数据库之间、甚至于DBMS之间快速复制数据的途径。
简单的说,使用数据管道就是把源数据库的一个或者多个表中的数据输入到目的数据库的一个表当中去。
这个复制数据的过程称为通过数据管道灌入数据。
8.2 新建数据管道为了能是读者了解清楚数据管道的作用,需要读者自行建立一些简单的数据库和对象库,为了表述方便,这里只提示关键步骤,不明白的可以翻查第二章的详细讲解:一、建立一个对象库,PIPELINE.PBL ,不需要由PowerBuilder为我们生成应用程序的模板。
PIPELINE.PBL的SAVE APPLICATION对话框中起名为LEARNING_PIPELINE。
二、新建两个数据库:Source.db 和 DESTINATION.db 。
ID号是:DBA,密码是 SQL 。
(选择默认即可)。
在我的电脑——控制面板——管理工具——数据源可以查看到数据库的信息。
三、在Source.db 中添加三个字段,名字分别为fromsource,source1,source2。
三个字段的数据类型均为char,最大宽度WIDTH设置为30,NULL项中选择YES。
表格命名为source。
四、在DESTINATION.db 中添加三个字段,名字分别为fromsource,source1,source2,s ource2。
四个字段的数据类型均为char,最大宽度WIDTH设置为30,NULL项中选择YES。
表格命名为destination。
编者注:对于数据库的表格内容输入可以使用DB语言。
添加记录INSERT INTO source VALUES('111','sdf','eraw')更新记录UPDATE source SET source1 = 'test' where fromsource = '222' ;删除记录DELETE FROM source where fromsource = '111' ;删除全部记录DELETE FROM source ;五、打开source.db,选择DB Aadministration,一次添加几个数据进去:INSERT INTO source VALUES('111','sdf','erawe');INSERT INTO source VALUES('222','ert','uyior');INSERT INTO source VALUES('333','fgh','78679');INSERT INTO source VALUES('444','bnm','fghjh');(注意切换英文输入法)点击execute导入,单击工具条上的DATA MANIPULATION(GRID)画板按钮进行阅览(图8 -13 )。
窗口与控件窗口与控件专题所涉及的范围比较广,如特殊功能控件的实现,友好漂亮界面的制作,这些都是PB程序员比较感兴趣的话题。
在PowerBuilder中,如果善于运用数据窗口与API技术,开发出的应用定将与众不同。
本章结合实例介绍如下专题:制作Splash窗口制作美观的状态条系统热键的实现创建图标栏应用MDI窗口显示背景图片定制有特色的图标按钮导航图界面的制作制作图文并茂的菜单窗口内控件大小与窗口大小同步动态创建控件控件融合技术窗口中控件显示ToolTips第章1PowerBuilder 8.0进阶篇·2·owerBuilder 编程离不开窗口与控件,从某种程度上可以说,现在的可视化编程无非就是将各种控件垒加到窗口中,再加上编写的一些代码,就构成了一个应用程序。
因此可以这么理解:窗口与控件是可视化编程的基础。
PowerBuilder 8.0提供了类型丰富的窗口及控件,灵活使用它们可以为应用开发提供极大的方便。
很多人认为,PowerBuilder 在界面制作方面功能不是很强,很难制作出Delphi 那样的漂亮界面。
其实只要肯思考,善于利用数据窗口及API 等技术,PowerBuilder 一样可以制作出美观、友好的用户界面。
本章将结合实例介绍在PowerBuilder 中如何制作Splash 启动窗口、美观的状态条、图文并茂的菜单以及如何使用系统热键、创建图标栏、用MDI 窗口显示背景图片、定制按钮、制作导航图界面、使窗口内控件大小与窗口大小同步、动态创建控件、使用控件融合、用窗口中控件显示ToolTips 等实用技术。
1.1 制作Splash 窗口现在很多商业软件如PowerBuilder 、Word 、金山词霸等都会在程序启动时呈现一个Splash 窗口,窗口上有软件名称、版本、图标等相关信息或“正在加载,请稍候…”等提示信息,该窗口显示一段时间后会自动关闭。
如果在自己开发的系统中启动时也加上一个Splash 窗口,虽然不会改善程序性能,但会使应用程序添色不少。
创建程序需要做如下操作:1. 创建WorkSpace;创建Target;2. 创建数据库;3. 创建窗口、菜单,窗口与菜单关联;4. 在Application对象上编写脚本。
1.1创建WorkSpace1)在PB开发中,创建WorkSpace是任何应用程序开发的第一个步骤。
进入到PowerBuilder 中,点击窗口最左侧的小功能按钮‘New’,显示的新建窗口如下所示。
2)上图所示的new窗口中,点击窗口右下脚的‘OK’ 命令按钮,打开如下图所示的对话框。
3)选择保存目录为C:\temp,在文件名框中输入“myapp”,建立myapp工作空间。
如下所示:1.2创建Target1)创建完Workspace之后的PB界面如图1-4所示。
在此基础上继续创建Target。
2)鼠标放在‘myapp’上面并点击右键,选择弹出菜单中的‘New’,进入到如下图所示的窗口。
在该窗口中创建Target。
3)选择Application,点击窗口右下脚的命令按钮‘OK’,打开如下图所示的窗口。
4)在该窗口中的‘Application Name’输入框中输入创建的应用程序的名称‘myapp’,然后按Tab键,PB自动设置Library和Target,不需要修改这两项,点击窗口右下脚的‘Finish’命令按钮即可。
本步骤操作完成之后,PB在指定的目录中创建名称为myapp.pbl的文件,并且创建了Application对象。
相应的PB界面如下所示:Application对象是PB应用程序的入口,是应用程序执行的起点。
下面就可以创建需要的窗口了。
建立了应用后,就可以创建数据库。
2.1 创建数据库1)使用PowerBuilder自带的数据库管理系统Adaptive Server Anywhere。
进入到PB中,选择窗口菜单Tools->Database Profile ,打开如下图所示的对话框。
2)在该对话框中,点击‘ODB ODBC’左侧的‘+’号,展开具体的内容。
目录目录 (1)PB简介 (2)PB基础语法 (2)标示符 (2)注释 (2)代词 (3)数据类型 (3)变量 (3)运算符 (4)控制结构 (5)条件语句 (5)循环结构 (6)跳转语句 (6)返回和终止 (7)PB创建应用程序 (7)Pb的常用对象 (8)窗口 - Window (8)命令按钮 (9)静态文本 (10)可编辑类 (10)显示及控制类 (11)下拉列表框 (11)列表类 (12)视图类 (12)其他 (13)菜单 - Menu (13)Datawindow (14)PB编译客户端程序 (14)Pb连接数据库 (18)Pb查看程序源码 (23)Pb跟踪程序 (28)PB简介PB是PowerBuilder的简写,由Sybase公司出品,最早是由PowerSoft公司开发并发布销售的,并出品了到PowerBuilder5.0为止的各个版本,初期在广大开发人员中反映并不强烈。
到1995年左右,由Sybase收购PowerSoft公司开始并成功推出了PowerBuilder 6.0版本,由此开始,由于它的易用性、数据窗专利技术、对各种流行RDBMS的广泛支持、独特的开发方法及理念、独特的对象编程技术等等,成为现在为止可能是世界上用于数据库前端开发的最快捷、最方便、最强大的工具,一般而言,对一个小型的系统,在充分分析好的前提下,熟悉的程序员可以在一周以内完成一个独立的系统。
这对于其他数据库系统前端开发工具,如VB,Delphi,VFP,ORACLE Develop2000等等,如果你用过这些工具,简直无法想象。
虽然现在流行的开发工具并不是PB,因为现在到处都是B2B,B2C,PB在这方面能够实现,但比较其它专门工具而言,并不具有非常大的优势,而且实现的技术比较而言相对复杂。
但对于S/C结构的数据库应用及Intrnet而言,PowerBuilder仍然是非常好的选择。
PB基础语法下面就从PB最基本的语法,并结合公司的使用pb的情况,对PB做介绍。
返回总目录上一章讲了数据窗口的创建和定制方法,而数据窗口对象要想真正发挥作用,必须放在一个窗口(Win-dow)中。
但窗口不能直接放置数据窗口对象,要在窗口中运用数据窗口对象,必须借助于数据窗口控件。
数据窗口对象(Data-Window)和数据窗口控件(DataWindow Control)是两个不同的东西:数据窗口控件是标准的PB控件;而数据窗口对象根本就不是一个真正意义上的窗口。
在应用程序中,数据窗口对象向上与数据窗口控件相关联,向下与数据库连接。
1新建一个窗口对象,如下图。
2在窗口上添加数据窗口控件(DataWindow Control)。
添加方法同添加其他控件,通过单击窗口画板上的Control Select按钮,在弹出的工具板上单击DataWindow按钮,再在窗口上某位置单击,见下图。
3双击新建的数据窗口控件,打开其属性对话框如图。
按Browse按钮为控件选择一个数据窗口对象,通过这种方式将对象与控件联系起来,控件将用来显示此对象中的数据信息。
例解数据窗口控件设置数据窗口控件例解联系数据窗口控件与数据窗口对象有两种方法,其一是在控件属性对话框General 页中单击Browse...按钮选择数据窗口对象的名字(见步骤3);其二是直接编程修改数据窗口控件的Dataobject 属性(以后会讲到)。
4 关闭属性对话框,回到窗口画板(或叫描绘器),如下图。
用鼠标调整数据窗口对象的大小,使数据窗口对象能够完全显示出来。
5在步骤3对话框的General 页中核选除了Control Menu 和Right To Left 之外的所有复选框;在Title 编辑框中输入“DataWindow Control ”作为数据窗口控件的标题,关闭对话框,结果如下图。
6 把窗口保存为w_test_dw1(以备后用),预览窗口如下图。
7关闭窗口,完成本次操作。
要想在数据窗口对象中显示和检索数据库中的数据,必须建立数据窗口对象和数据库的连接。
在数据窗口画板中预览数据窗口时,PB已经建立了与数据库的连接(见第1章前几节);但当把应用程序编译成独立的可执行文件时,就不能依靠PB 了,唯一的办法是创建自己的连接。
事务对象用来在应用程序中完成与数据库的连接功能。
事务对象(类似于C++或JavaScript 中的对象)本质上是一个结构(Struct),象其它的Pow-er Builder对象一样,有自己的许多属性(成员变量);1单击PowerBar上的DB Profile图标按钮,弹出如下“数据库描述文件设置”对话框。
在对话框中选中ODBC下的student,按Edit按钮,弹出步骤2图中的对话框。
2选择对话框的Preview页,如下图。
拷贝Database connection syntax编辑框中的内容(可以按Copy按钮)。
3单击PowerBar上的Application按钮,打开当前的Application(确信它与上一章所建的数据窗口对象及上节所新建的窗口同在一个PBL中),如下图。
例解事务对象创建和设置事务对象例解事务对象不能出现在屏幕上(不可显示),而是驻留在内存中,其属性(即成员变量)中包含了连接数据库及从数据库得到的反馈信息。
PB 已经为用户创建了一个用户对象SQLCA ,普通的连接任务用它就可以完成,如果要在一个程序中连接多个数据库,则要自定义事务对象。
4 单击上图工具条上的Script 按钮,进入Script 编辑窗口。
从Select Event下拉式列表框中选择Open ,为Open 事件增加代码。
将从步骤2拷贝的内容粘贴到其它代码的最上面(如果还有其它代码的话),如图。
5步骤4所添加的代码用于设置事务对象的属性。
下面再给Open 事件增加一些代码,如下图(从“CONNECT USING SQLCA ”开始)。
这些代码用来完成数据库与事务对象的连接和打开窗口w_test_dw1。
6 从Select Event 下拉列表框选择Close ,为Close 事件增加代码如下图。
这些代码用来断开数据库与事物对象的连接(后面的If 语句用于当断开连接失败时显示错误提示)。
7 以上6步从数据库描述文件(Profile )中取属性信息从而设置事物对象的属性;然后分别在应用程序对象的Open 和Close 事件中建立和断开事务对象与数据库的连接。
本章前三节,演示了在程序中使用数据窗口的过程,小结一下,分如下几步:1.创建一个数据窗口对象(利用Pow-erBar上的Dat-aWindow图标按钮,见第4章);2.在窗口中添加一个数据窗口控件,并和数据窗口对象联系起来(联系办法有两种,静态连接和动态连接);3.从数据库描述文件(Profile)中取信息(Pow-erBar上的DB Profile图标按钮)来填充事务对象的属性(从Profile中拷贝属性,也可以通过INI 文件获取属性信息);1(接上节)打开在第1节所创建的窗口w_test_dw1,在窗口上面(而不是在其控件上面)单击右键,弹出菜单如图。
2选择Script菜单项,为窗口事件增加Script语句处理过程。
在Select Event 下拉式列表框中选择Open事件,为其增加代码如下图。
两行代码分别用来给数据窗口分配事务对象和让数据窗口检索数据。
3退出Script编辑窗口,按PowerBar上的Run图标按钮(一个跑动的小人),运行程序,结果如下图。
发现数据窗口控件中出现了数据,和上一章在数据窗口的预览窗口中显示的结果是一样的。
例解事物对象(续)创建和设置事务对象例解4.建立事务对象与数据库的连接(Po-wer Script 编程,CONNECT 语句);5.建立事物对象与数据窗口对象的连接(SetTrans-Object 成员函数);6.数据窗口检索数据(Retrieve 成员函数)。
当然,程序结束时,不要忘了断开事务对象与数据库的连接(DISCONNE CT 语句)。
4 也可以让窗口开始不显示数据,直到单击一个按钮。
下面几步来实现这一点。
给窗口增加按钮控件“Click Me ”,在按钮上单击右键,弹出菜单,如下图。
5在菜单上选择Script ,进入下图窗口。
在Select Event 下拉式列表框中选择Clicked ,为按钮的单击事件增加处理过程如下图。
“Retrieve ”是数据窗口控件的成员函数,其功能是检索数据。
6 从窗口w_test_dw1的Open 事件的处理过程中去掉第二行(即Retrieve 函数那一行,因为这一行已经写在“Click Me ”的事件处理过程中了),保存并运行窗口,结果见下图。
7 单击Click Me按钮,观察结果。
前几章讲过,可以在数据操作画板(Data Mani-pulation Paint-er)和数据窗口预览(Data-Window Pre-view)中对数据进行页间转换(通过“上一页”、“下一页”、“第一页”、“最后一页”4个按钮)和排序、过滤等操作。
在本节和下一节将会看到,通过在窗口中添加命令按钮(Command Button),照样可以完成相同的功能。
Power Bu-ilder为数据窗口控件提供了功能强大的成员函数,利用这些成员函数可以完成连接数据库、数据检索、行刷新、行统计、行添加、行删除、行保存、1打开窗口w_test_dw1,在数据窗口控件的属性对话框中禁选Title Bar,再增加两个按钮,标题分别为“上一页”和“下一页”。
2在“上一页”按钮的Clicked事件中添加代码如下图。
同理在“下一页”按钮的Clicked事件中添加代码:dw_1.ScrollNextPage()。
3在窗口上增加标题为“排序”的命令按钮,在其Clicked事件中添加代码如下图。
例解动态访问数据窗口用命令按钮控制数据例解行列获取、行列设置、滚动、过滤、排序、更新、打印等功能。
部分函数见下一节步骤5、6的图,其它请查阅联机帮助(按键盘上的F1键或选择Help|Help Con-tents 菜单项)和有关书籍。
步骤3的排序表达式使数据按照学号的升序排列,学号值相同的数据按照分数的降序排序。
步骤4的过滤表达式使数据窗口只显示分数在80和90分之间的学生的成绩。
4 在窗口上增加标题为“过滤”的命令按钮,在其Clicked 事件中添加代码如下图。
5 在窗口上增加标题为“取消过滤”的命令按钮,在其Clicked 事件中添加代码如下图。
6在窗口上增加标题为“所选行列”的命令按钮,在其Clicked事件中添加代码如下图。
7 以上步骤所添加的按钮和代码用于在窗口中对数据窗口的数据进行浏览控制。
请接下一节。
步骤5图中“SetSort”函数的参数format的格式为如下形式:"cname order, cname orde-r,..."。
其中“cname”表示列名,“or-der”可取字母‘A’(升序)或‘D’(降序),省略号表示可以有多个“cname ord-er”对。
如“"score A"”、“"studentid A,Score D"”都是合法的参数形式。
步骤6图中提到的各种“缓冲区”是怎么回事呢?在数据窗口控件中有四个缓冲区:Prim-ary、Delete、Filter和Orig-inal缓冲区(buffer)。
Primary缓冲区保存当前在数据窗口中显示的行(没有被1上一节添加了若干按钮控件后,窗口w_test_dw1的布局如下图。
2按PowerBar上的Run图表按钮运行程序,单击按钮Click Me后,数据窗口控件中显示出数据,见下图。
单击“上一页”和“下一页”按钮,看数据窗口有何变化。
3单击“过滤”按钮,表中只显示了score值在80和90之间的数据,如下图。
读者可以按下“取消过滤”和“排序”按钮测试其功能。
例解动态访问数据窗口(续)用命令按钮控制数据例解删除或过滤掉的行);Delete 缓冲区保存了所有从数据窗口对象中删除的行(但这些行还没有被数据库删除,甚至数据库还没有收到行删除的消息);Filter缓冲区保存了被数据窗口的过滤条件(而不是数据检索时SQL 语句的过滤条件)所过滤掉的行。
Original 缓冲区存放从数据库检索来的原始行和数据的原始值。
用户可以通过数据窗口控件的成员函数(如FilteredCount()等)来访问其缓冲区,见步骤6的图。
4 选中第2行第2列的数据,单击“所选行列”按钮,弹出对话框如下图。
注意对话框的标题是“当前行和列”,显示的内容是“(2,2)”,对照“所选行列”按钮的代码考虑为什么显示这样的对话框。
5下图和步骤6图是数据窗口控件的一些成员函数介绍,用户可以自己编写代码测试它们的功能。