PowerBuilder应用程序的数据库连接技术
PB与数据库的连接方法
PowerBuilder程序与数据库之间传递信息的一个结构变量,共有15个成员.你可以详细列表它的所有成员看看它的组成.PB的应用程序会初始化一个全局的结构体变量,SQLCA,当然你也可以自定义一个自己的事务对象.1 DBMS string 所使用的数据库管理系统的名字,如Sybase,Oracle,ODBC。
2 Database string 要连接的数据库名字。
3 UserID string 连接数据库所用的用户名。
有的DBMS不需要此项。
4 DBPass string 用户连接数据库的口令。
5 Lock string 这是数据库的保护级别,一般不必给出。
6 LogID string 登录到数据库服务器上的用户名,有的DBMS不需要此项,但Sybase和Oracle 需要指定这个参数。
7 LogPass string 登录到数据库服务器上的用户口令。
这个属性可设可不设,但Sybase和Oracle需要指定口令。
8 ServerName string 数据库服务器名。
9 AutoCommit boolean 指定是否将数据库设置成自动提交所有事务。
默认是False,也就是说,必须在应用程序中进行事务管理,并在适当的时候对数据库提交事务。
如果选择True,则每个事务都由系统自动提交。
10 DBParm string 用于向数据库传递特殊信息的属性。
11 SQLCode long 指示最近一次SQL操作失败或成功。
它的取值为:返回结果0 无错误。
-1 出现一个错误。
100 没有检索到数据。
12 SQLNRows long 最近一次SQL操作影响的行数,数据库不同其含义也不同。
13 SQLDBCode long 数据库错误代码。
不同的数据库的含义不同。
14 SQLErrText string 相应于SQLDBCode属性中错误码的文字说明。
15 SQLReturnData string 返回DBMS执行SQL的附加信息,不同的DBMS其值不同。
ODBC或者PowerBuilder自带的DB PRofile或者专用接口连接上数据库
假如你已经是个PowerBuilder高手,那么下面的东西对你来说毫无价值,你大可不必再看下去,假如你刚刚步入PowerBuilder的殿堂,那么下面的东西对你来说可能有点价值,你应该看一看。
作为一个优秀的客户端开发工具,PowerBuilder必然需要与大型的数据库相连接,尽管许多资料上都介绍了如何通过ODBC或者PowerBuilder自带的DB PR ofile 或者专用接口连接上数据库,但仍然有许多使用者按此方法却无法连接上数据库,这方面的原因可能是PowerBuilder本身的原因,比如在安装PowerBuilder时的选项、ODBC的版本之类;也可能是在安装客户端的Oracle、Sybase、Informix、SQL Server等软件上的问题,下面就从最根本的ODBC配置开始,教你一步步如何连接上数据库。
ODBC数据源的配置进入控制面板,打开ODBC数据源(32位),如图1所示,点击“ADD”按钮,进入ODBC数据源的配置面板,如图2所示:选择“Oracle ODBCDriver”一项,注重当前版本号为“8.00.0400”,假如你的操作系统中安装的是Oracle7,则相应的版本号会不同。
提醒一点:在Windows98操作系统上是无法安装Oracle8.0.4的(只能安装Oracle7.2.3),Oracle8.0.5则没有试过。
因而会有一些使用者在Windows98系统上无法正常配置ODBC数据源,因为Windows98本身自带的ODBC数据源已经比Oracle7数据源版本要高,无论你怎样配置ODBC,系统总会提示你要安装一个更高版本的Oracle,自然你就无法配置ODBC了,有一个解决方法就是用PB7第二张光盘上的ODBC安装程序覆盖系统中的ODBC,或者把你的操作系统改为Windows95/97算了。
然后进入“Oracle8 ODBCDriver Setup”设置,在“Data Source Name”一项中随便输入一个名字,在“Data Source Service Name”一栏中输入Oracle连接数据库的字符串名,这可以在你安装的Oracle目录中的Tnsnames.ora文件中查看到(Oracle7安装路径为“ORA WIN95\NETWORK\ ADMIN”;Oracle8安装路径为“orawin95\NET80\AD MIN”),或者你通过“SQL Net Easy Configuration”新添加一个数据库连接配置,将配置中的字符串填入即可,其他的就不必再填入,避免出现画蛇添足之错,反而连接不上数据库了。
PB如何连接ORACLE数据库
PB如何连接ORACLE数据库如果你已经是个PowerBuilder高手,那么下面的东西对你来说毫无价值,你大可不必再看下去,如果你刚刚步入PowerBuilder的殿堂,那么下面的东西对你来说可能有点价值,你应该看一看。
作为一个优秀的客户端开发工具,PowerBuilder必然需要与大型的数据库相连接,尽管许多资料上都介绍了如何通过ODBC或者PowerBuilder自带的DB Profile或者专用接口连接上数据库,但仍然有许多使用者按此方法却无法连接上数据库,这方面的原因可能是P owerBuilder本身的原因,比如在安装PowerBuilder时的选项、ODBC的版本之类;也可能是在安装客户端的Oracle、Sybase、Informix、SQL Server等软件上的问题,下面就从最根本的ODBC配置开始,教你一步步如何连接上数据库。
ODBC数据源的配置进入控制面板,打开ODBC数据源(32位),如图1所示,点击“ADD”按钮,进入OD BC数据源的配置面板,如图2所示:选择“Oracle ODBC Driver”一项,注意当前版本号为“8.00.0400”,如果你的操作系统中安装的是Oracle7,则相应的版本号会不同。
提醒一点:在Windows98操作系统上是无法安装Oracle8.0.4的(只能安装Oracle7.2.3),Oracle8.0.5则没有试过。
因而会有一些使用者在Windows98系统上无法正常配置ODBC数据源,因为Windows98本身自带的OD BC数据源已经比Oracle7数据源版本要高,无论你怎样配置ODBC,系统总会提示你要安装一个更高版本的Oracle,自然你就无法配置ODBC了,有一个解决方法就是用PB7第二张光盘上的ODBC安装程序覆盖系统中的ODBC,或者把你的操作系统改为Windows95/97算了。
然后进入“Oracle8 ODBC Driver Setup”设置,在“Data Source Name”一项中随便输入一个名字,在“Data Source Service Name”一栏中输入Oracle连接数据库的字符串名,这可以在你安装的Oracle目录中的Tnsnames.ora文件中查看到(Oracle7安装路径为“ORAWIN95\NETWORK\ ADMIN”;Oracle8安装路径为“ora win95\NET80\ADMIN”),或者你通过“SQL Net Easy Configuration”新添加一个数据库连接配置,将配置中的字符串填入即可,其他的就不必再填入,避免出现画蛇添足之错,反而连接不上数据库了。
在PowerBuilder中连接SQLServer数据库的方法和技巧
在PowerBuilder中连接SQLServer数据库的方法和技巧作者:王超来源:《数字技术与应用》2013年第12期摘要:本文通过采用专用接口、通用接口这两种方法实现优秀的数据库前端开发工具PowerBuilder连接SQL Server数据库的比较,介绍了它们的特点、适用情况及编程技巧。
关键词:PowerBuilder SQL Server 数据库专用接口通用接口中图分类号:TP311 文献标识码:A 文章编号:1007-9416(2013)12-0230-02PowerBuilder是优秀的数据库前端开发工具,所以目前使用PowerBuilder来开发各种应用软件的比较多。
用PowerBuilder做数据库应用开发,离不开数据库的创建、管理以及与数据库的连接。
因为SQL Server是一种高效的关系数据库系统,具有丰富的编程接口,支持N层客户机/服务器系统等特点。
所以,在数据信息不太大的情况下使用SQL Server作为与PowerBuilder的后台数据库颇多,这样PowerBuilder与SQL Server的连接方式就是编程人员要考虑的问题。
1 通过专用数据库接口连接SQL Server数据库由于PowerBuilder自带ASA数据库,所以在一台计算机上就可以创建和维护所需的数据库,采用这种数据库一般都比较小,功能比较简单,访问速度也很快,但这种方式不适合客户机/服务器这种模式,而SQL Server数据库却是基于客户机/服务器模式的,它需要在网络中配备一台或多台高性能数据库服务器来集中地管理和维护数据库。
由于采用专用接口连接数据库,其性能比较优秀,访问数据库的速度比ODBC快得多,所以,目前采用专用接口来连接SQL Server数据库的方法:(1)确认客户端和服务器端的SQL Server已经安装,并正确配置;(2)启动PowerBuilder,单击PowerBar上具条上的DB Profile按钮或选择菜单栏上的Tool菜单的Database Profile菜单项,这时会弹出Database Profile对话框;(3)在此对话框中右击MSS Microsoft SQL Server选择New Profile菜单项,会打开一个对话框,输入Profile Name的名字及所连接服务器的名称、用户名、密码和数据库名称,单击OK即可。
PowerBuilder数据库开发技术
PowerBuilder数据库开发技术实验指导书实验目录1.实验一、PowerBuilder集成环境2.实验二、PowerBuilder数据定义3.实验三、PowerBuilder数据操纵4.实验四、PowerBuilder窗口设计5.实验五、PowerBuilder菜单设计6.实验六、PowerBuilder数据窗口设计7.实验七、小型数据库应用系统开发实验一:PowerBuilder集成环境一.实验目的1.掌握PowerBuilder的启动与退出2.熟悉PowerBuilder集成环境,包括菜单,工具条以及帮助3.熟悉PowerBuilder的类库管理,并创建一个简单应用4.熟悉窗口与菜单设计画板,添加设计和使用窗口与菜单二.实验内容1. PowerBuilde的启动与退出2.熟悉PowerBuilde集成环境3.创建一个简单的应用。
三.实验条件1.提供一台WINDOWS XP操作系统的计算机2.提供PowerBuilder9.0设计环境四.实验步骤1.启动与退出在安装完后,可以通过WINDOWS开始菜单找出Sybase 程序组中的PowerBuilder9.0启动PowerBuilder.启动后即出现如图所示的主窗口,可以选择菜单File/Exit 退出并关闭PowerBuilder.2.熟悉PowerBuilder集成环境,包括菜单、工具以及帮助画板是PowerBuilder提供的专项设计工具,PowerBuilder为窗口菜单数据窗口用户对象函数结构数据库数据管道以及应用提供画板。
如WINDOWS画板是用来设计应用程序窗口界面。
画板也是有多个子窗口组成,如WINDOWS画板有Layout外观子窗口,Properties 属性子窗口,Script脚本子窗口,Declare申明变量子窗口,这些子窗口可以在菜单View 中选取打开。
3.创建一个简单应用选择File/New 出现一个新建对话框(1)创建一个工作区Workspace ,输入工作区的名称Myspace,在Systemtree中出现建好的工作区。
PowerBuilder经验
数据库系列 PowerBuilder BY LH 或 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中连接SQL Server数据库的方法和技巧的研究报告
在PowerBuilder中连接SQL Server数据库的方法和技巧的研究报告PowerBuilder是一种易于使用的集成开发环境(IDE),它具有编写Windows应用程序所需的一切东西。
在PowerBuilder 中,连接SQL Server数据库是一种非常常见的任务,本文将介绍PowerBuilder中连接SQL Server数据库的方法和技巧。
SQL Server中连接数据库的方法首先,我们需要准备好一些必要的信息,如服务器名称、数据库名称、ID和密码等。
接下来,我们可以通过以下步骤连接数据库:1. 打开PowerBuilder IDE,并选择“打开一个项目”或“新建一个项目”。
2. 在打开的项目中,选择“打开一个对象”或“新建一个对象”。
3. 选择“数据库连接”或“数据窗口连接”选项。
4. 输入服务器名称和数据库名称,并选择正确的身份验证模式(本地或远程)。
5. 输入正确的ID和密码,并点击“测试连接”按钮。
6. 成功测试连接后,可以单击“确认”按钮,保存连接参数。
7. 在需要使用数据库的页面中,选择创建新的数据对象或使用现有的数据对象,并进行数据绑定。
PowerBuilder中连接SQL Server数据库的技巧在连接SQL Server数据库时,以下技巧可能会帮助我们更轻松地完成工作:1. 使用ODBC驱动程序:在连接SQL Server数据库时,使用ODBC驱动程序可以提供更高的灵活性和性能。
我们可以通过ODBC数据源管理员配置和测试ODBC连接属性。
2. 将连接参数保存在INI文件中:我们可以将连接参数保存在INI文件中,以便以后重新连接时不必输入相同的信息。
3. 使用事务:在PowerBuilder应用程序中,事务可以确保数据库操作的稳定性。
我们可以使用BEGIN TRANSACTION和ROLLBACK TRANSACTION语句来实现事务。
4. 使用DataWindow对象:PowerBuilder的DataWindow对象可以方便地展示数据库中的信息,并提供了小计、总计、分页和排序功能。
在PowerBuilder应用程序中建立数据库连接的参数配置方法
数据库与信息 管理
在 P w r ule 应 用 程 序 中建 立数 据库 o eB i r d 连 接 的参 数 配 置 方法
张 静
( 套 大学 机 电与 信 息 工 程 学 院 ,巴彦 淖 尔 0 50 ) 河 10 0 摘 要 : Pw r ule 作 为 目前 先进 的数 据 库 开发 工 具和 前 台 应 用程 序 开发 工具 ,在 访 问数 据 库 之 前 ,必 须 首 先 与 oe i r B d
一
()专用数据库接 口 ( MS I R S F Q E V R 2 如 SM C O O FS LS R E ,
0 0O 9 RAC E 90 1) L ..
一
旦 准备 用 本 地 数 据 库 接 口访 问 数 据 库 ,必 须 首 先 定 义
B oe “ ol a
特定 的数据库接 口。为 了定义数 据库接 口必须设 置数据 库配 置文件中的一些信息 ,也就是说 ,当定 义连接 到某 一数 据接
Absr c :Aso fc re dv n e a a a e a d fon i e a lc to e e o m e tto s , we Bu l rh s t uc e s ta t ne o u r nta a c d d t b s n r tsd pp ia in d v l p n o l Po r ide a o s c s — f ly c n ec o t e daa s i h i r pa e o o e a e frty be e a c si g t t b s . i p r i r d es h e ul o n tt h tba e wh c s p e r d t p r t isl  ̄r c e sn he daa a eTh spa e nto uc tr e
powerbuilder习题
PB习题一、填空1、 PB自身所带的数据库是()数据库2、 PB有两种访问后台数据库的方式,一是()二是()3、 ODBC是指()4、数据库画板是我们在PB开发环境中()()()以及()()()的场所。
5、 ASA数据库默认的USE ID是(),密码是()6、 SQL Server 2000默认的用户名是(),密码是()7、在PB中建立ASA数据库,其默认所有者是()8、表的主键是指()10、在程序的脚本中我们必须使用()来接连数据库答案1、 ASA 2、通过ODBC接口通过专用接口 3、开放式数据库连接4、定义数据库表视图索引查询修改增删数据5、 DBA SQL6、SA SA7、DBO8、能够唯一标识每一行数据的一个列或多个列的集合10、事务对象11、 PB的精华是指()12、 PB共有()种数据窗口样式13、 PB共有()数据源14、我们最常用的数据源是(),功能最强大的数据源是()15、数据窗口对象包括()()()()()()个视窗16、 FreeForm式的数据窗口我们称为()式,其特点是()答案11、数据窗口 12、11 13、5 14、Quick Select SQL Select数据源 15、设计、属性、预览、列说明、控键列表、数据16、自由式,布局灵活、自由17.( )是powerbuilder的核心专利技术,它由( )和( )两部分组成。
18.一般在应用程序的初始化过程中,使用( )语句与数据库建立连接,在打开窗口时,使用数据窗口控件的对象函数( )或( )将数据窗口控件与事务对象联系起来,使用数据窗口控件的对象函数( )把数据库中的数据装入数据窗口中。
19.用户在向数据窗口中输入数据时,并没有直接把数据输入到数据窗口的主缓冲区中,而是把数据输入到悬浮在数据窗口当前单元的( )中。
20.Powerbuilder的事件和函数统称为(方法)。
21.为了起到快速和没有鼠标只用键盘也能操作菜单的双重效果,设计菜单时应采用和。
powerbuilder 12
PowerBuilder 12简介PowerBuilder是一款由Sybase公司开发的,用于快速创建企业级应用程序的集成开发环境(IDE)。
它可以用于开发Windows桌面应用程序、Web应用程序和移动应用程序,并且支持多种数据库管理系统。
功能特点PowerBuilder 12具有以下一些主要功能特点:1. 可视化开发环境PowerBuilder提供了一套可视化的工具和界面,使开发人员可以轻松创建和编辑应用程序的用户界面。
它支持拖放板块、窗口和控件的方式进行界面设计,减少了繁琐的手动编码工作。
2. 数据库连接和操作PowerBuilder 12支持多种数据库管理系统,包括Oracle、Microsoft SQL Server、IBM DB2等。
开发人员可以通过PowerBuilder的数据库连接对象,轻松地连接和操作数据库。
3. 数据窗口技术PowerBuilder的核心功能是数据窗口技术。
数据窗口是PowerBuilder独有的一种控件,它可以显示和操作数据库中的数据。
通过数据窗口技术,开发人员可以快速创建数据驱动的应用程序。
4. 代码自动生成PowerBuilder支持自动生成代码的功能,可以根据数据库表结构自动生成相关的增删改查操作代码。
这样,开发人员可以节省大量的时间和精力,减少手动编码的工作量。
5. 可扩展性PowerBuilder支持使用自定义插件和扩展来增强其功能。
开发人员可以根据自己的需求,开发和集成各种自定义功能。
6. 跨平台支持PowerBuilder 12支持开发Windows、Web和移动应用程序。
开发人员只需编写一套代码,即可生成多个平台的应用程序。
7. 调试和测试工具PowerBuilder提供了一套强大的调试和测试工具,帮助开发人员快速定位和解决问题。
它支持断点调试、变量监视、内存分析等功能。
应用场景PowerBuilder 12适用于以下一些应用场景:1.企业级应用开发:PowerBuilder的可视化开发环境和数据库连接功能,使得它非常适合用于开发复杂的企业级应用程序。
powerbuilder编程简单入门(个人总结)
powerbuilder编程简单⼊门(个⼈总结)⼀种简单的powerbuilder10数据库编程介绍1、需求分析与数据库建⽴进⾏需求分析(需求分析⽂档),确定数据关系,建⽴各种数据表,建⽴数据库(Access),设置ODBC数据源(控制⾯板->管理⼯具->数据源ODBC->“⽤户DSN”菜单下点“添加” 选相应的数据源驱动程序,如果⽤Access2003建⽴的,则选第三项“Driver do Microsoft Access(*.mdb),然后点击“完成”->输⼊数据源名,如mydata,然后点击“选择”按钮选择建好的数据库,最后点“确定”,如下图所⽰)2、界⾯设计(功能界⾯、重要数据表维护界⾯)界⾯设计主要分为⼏个部分(1)按照管理系统所需的功能设计界⾯。
⾸先画出所有可能的业务流程(数据的各种可能输⼊、修改、删除业务,数据的输出、显⽰业务)(2)按照需要维护的表设计界⾯(往往给最⾼权限管理员直接修改数据⽤)3、开始程序编写(1) 新建⼀个workspace(new->workspace->workspace)(2) 在workspace下建⽴⼀个⽬标(new->Target->application),可取名frame(3) 在⽬标下建⼀个主窗⼝可取名w_main,窗体名⼀般以w_开头(new->PB Object->Window),将其Window Type 设为“mdihelp!”(4) 为主窗⼝建⼀个主菜单可取名m_frame,菜单名⼀般以m_开头(new->PB Object->Menu)(5) 程序中设置ODB ODBC点击按钮,选中“ODB ODBC”项,然后单击右边“New”按钮,弹出如下对话框,设置Profile Name和Data Source,如图所⽰。
(6) 建⽴配置⽂件配置⽂件取名“config.ini”,内容如下:[MyDB]DBMS=ODBCAutoCommit=FalseDBParm=ConnectString='DSN=mydata;UID=;PWD='(7) ⾃动连接数据库与退出程序关闭数据库的编写⾸先建⽴Global Variables如下:string gs_userid,gs_username //登录⽤户标识、⽤户姓名string gs_root_path,gs_ini_path //应⽤路径和主配置⽂件路径其次申明Global External Functions如下:FUNCTION int GetComputerNameA(ref string computername,ref long size) LIBRARY "KERNEL32.DLL" alias for "GetComputerNameA;Ansi"FUNCTION long GetCurrentDirectoryA( long nBufferLength, REF string szBuffer ) LIBRARY "KERNEL32.DLL" alias for "GetCurrentDirectoryA;Ansi"FUNCTION long SetCurrentDirectoryA( string szPathName ) LIBRARY "KERNEL32.DLL" alias for "SetCurrentDirectoryA;Ansi"//end prototypes在程序的总⼊⼝(进⼊“”)Open事件中写⼊以下代码:// Profile moneyandfriendsstring ls_1//设置应⽤根⽬录gs_root_path = space(255)GetCurrentDirectoryA( 255, gs_root_path )if right(gs_root_path,1) = '\' thengs_root_path = left(gs_root_path,len(gs_root_path) - 1)end if//设置配置⽂件路径gs_ini_path = gs_root_path + "\config.ini"IF not FileExists ( gs_ini_path ) THENMessageBox( "找不到配置⽂件"+gs_ini_path,"系统配置错误",stopsign!,ok! ) RETURNEND IF//SetProfileString(gs_ini_path,'DBMS','ls_1=ProfileString(gs_ini_path,'MyDB','DBMS','ODBC')SQLCA.DBMS =ls_1SQLCA.AutoCommit = Falsels_1=ProfileString(gs_ini_path,'MyDB','DBParm','error')SQLCA.DBParm = ls_1connect using sqlca;open(w_main) //打开主界⾯在Close事件中加⼊如下代码:disCONNECT USING sqlca;(8) 建⽴新的具体功能窗体(如w_zichuangti)8.1 设置窗体BackColor为“Cream”,输⼊窗体Title;要在1024*768分辨率下基本满屏,窗体⼤⼩可设置为“4645*2748”8.2在新窗体上⼀般⽤GroupBox来划分功能区域,设置该控件的字体为“宋体”,⼤⼩为“10”,背景颜⾊为“Cream”8.3⽤静态⽂本做功能说明或指⽰,⼀般加⿊,宋体9号字⽰例程序界⾯如下:(9) 响应菜单click事件弹出⼦窗⼝(相同⼦窗⼝只弹出⼀次待研究)在菜单下编写代码打开窗体(双击菜单即可在Click事件下编写),简单代码如下://选择菜单时调出⼦窗体window lwopensheet(lw,'w_ zichuangti',parentwindow,0,Cascaded! )lw.WindowState = Maximized!(10) 相同的⼦窗⼝只让弹出⼀次(代研究)(10) 建⽴数据窗⼝(11) 添加新的pbl⽂件⼀般要⽤不同的pbl⽂件分类存储不同窗体、数据窗⼝和菜单等资源;建⽴新的pbl⽂件的⽅法如下:点击⼯具栏上“Library”按钮,然后在弹出⼦窗⼝中进⼊程序所在⽂件夹,在⼯具栏左下有“”创建pbl的按钮。
powerbuilder是什么意思.
powerbuilder是什么意思powerbuilder是什么意思?什么是PowerBuilder我们知道,数据库应用是当前计算机应用的一个非常重要的方面,而在目前的数据库应用技术中普遍采用的就是客户机/服务器体系结构,在这种体系结构中,所有的数据和数据库管理系统都在服务器上,客户机通过采用标准的SQL 语句等方式来访问服务器上数据库中的数据。
由于这种体系结构把数据和对数据的管理都统一放在了服务器上。
就保证了数据的安全性和完整性,同时也可以充分利用服务器高性能的特点。
正因为客户机/服务器体系结构的这些优点,因而得到了非常广泛的应用。
PowerBuilder是著名的数据库应用开发工具生产厂商PowerSoft公司推出的产品(PowerSoft现已被数据库厂商Sybase所收购),它完全按照客户机/服务器体系结构研制设计,在客户机/服务器结构中,它使用在客户机中,作为数据库应用程序的开发工具而存在。
由于PowerBuilder采用了面向对象和可视化技术,提供可视化的应用开发环境,使得我们利用PowerBuilder,可以方便快捷地开发出利用后台服务器中的数据和数据库管理系统的数据库应用程序。
在当前,网络技术迅速发展,随之发展的还有OLE,OCX,跨平台等技术,而在PowerBuilder的最新版PowerBuilder 6.0中提供了对这些技术的全面支持。
总之在数据库开发工具领域,PowerBuilder是其中非常优秀的一个,利用它我们可以开发出功能强大的数据库应用程序。
PowerBuilder的特点PowerBuilder提供了对目前流行的大多数关系数据库管理系统的支持,由于在PowerBuilder的应用程序中对数据库访问的部分一般采用国际化标准数据库查询语言SQL,使得用PowerBuilder开发的应用程序可以不做修改或者只做少量的修改就可以在不同的后台数据库管理系统上使用。
也就是说用PowerBuilder 开发的应用程序是独立于服务器上的数据库管理系统的。
PB数据管道的实用程序设计技术
PB数据管道的实用程序设计技术Powerbuilder(以下简称pb)提供强大数据管道技术(Data Pipeline)。
通过数据管道,我们可以在不同数据库表之间移动数据,实现一个或多个表中的数据拷贝到一个新的或已经存在的目标数据表中。
这种操作可以在同一数据库中进行,也可以在不同数据库,甚至可以在不同的DBMS之间进行。
我们通常使用数据管道的两种方式:1、直接使用pb画板中提供的实用工具;2、在应用程序中实现数据移动。
本文着重结合具体实例讲述在应用程序中如何实现数据管道技术。
在应用程序中使用数据管道有以下五个基本步骤:1、创建应用程序所需对象;2、执行数据管道初始化操作;3、启动数据管道;4、处理程序运行中移动数据的错误行;5、执行数据移动完毕后的收尾操作。
一、创建应用程序所需对象为了在应用程序中实现数据管道,需建立以下几个不同的对象:数据管道对象;支撑用户对象;窗口对象。
创建数据管道对象。
这是为实现管道功能所必须的,可在Powerbuilder提供的pipeline画板中创建并定义它的特征。
示例在pipeline画板中创建应用程序需要的数据管道对象pipe_user_table01. 在此着重说明Commit和Max Errors文本框中参数的意义。
1、Commit中选中ALL,为当所有行在管道操作完成后再向数据库提交,如果操作过程中被终止,则撤消对表的所有操作。
用户可以根据实际情况加以选择自己块操作的大小。
2、Max Errors文本框中选中NO LIMIT,为不论有多少行出错都不终止管道操作。
此处视实际编程需要可选其它数字。
创建支撑用户对象。
为了提供对属性、事件及函数的支持,需创建一个继承PB管道系统对象(pipeline system object)的用户对象,通过这个用户对象来管理管道操作。
管道系统对象包括了不同的属性、事件及函数,在程序运行时可以用来管理一个管道对象。
下表为这些属性、事件及函数。
第一章PowerBuilder入门
PowerBuilder安装过程 安装过程
1、运行PB的安装光盘根目录下的 、运行 的安装光盘根目录下的 的安装光盘根目录下的Setup.exe,安装程 , 序提示是否同意软件的许可协议,如下图所示。 序提示是否同意软件的许可协议,如下图所示。不同 意许可协议时将退出安装过程。 意许可协议时将退出安装过程。
8.PB支持交叉平台 . 支持交叉平台
PB是一个跨平台的开发工具,它能够在许多 是一个跨平台的开发工具, 是一个跨平台的开发工具 操作系统环境下进行应用程序的开发, 操作系统环境下进行应用程序的开发,如 Windows 9x、Windows 2000、Windows NT等。 、 、 等
9.灵活快捷的数据转移方法-数据管道技术 .灵活快捷的数据转移方法-
1.1 PowerBuilder的功能特点 的功能特点
PB是美国 是美国PowerSoft公司(后来被 公司( 是美国 公司 后来被Sybase公司并 公司并 于二十世纪九十年代初期( 购)于二十世纪九十年代初期(1992年)推出的产 年 品,它是一种基于客户机 服务器体系结构的应用程 它是一种基于客户机/服务器体系结构的应用程 客户机 服务器 序的前端开发工具,采用面向对象的开发技术, 序的前端开发工具,采用面向对象的开发技术,具 有可视化的图形用户界面, 有可视化的图形用户界面,使用它开发人员能够快 速容易地开发出应用程序。 速容易地开发出应用程序。
11、单击“否”按钮。安装程序会检测计算机中是 、单击“ 按钮。 否安装了DCOM。DCOM是ODBC 3.5所需要的驱 否安装了 。 是 所需要的驱 动程序,可从微软的相关网站上下载。 动程序,可从微软的相关网站上下载。如果还没有 安装DCOM,则系统会提示在完成 安装 ,则系统会提示在完成PowerBuilder的 的 安装后安装DCOM。 安装后安装 。
PowerBuilder9教程
集成性ห้องสมุดไป่ตู้
PowerBuilder9可以与其他 开发工具和企业级框架集成, 方便开发人员构建复杂的应 用程序。
PowerBuilder9的应用领域
企业级应用程序开发
PowerBuilder9适用于构建企业级应用程 序,如财务管理、人力资源管理和客户关
系管理等。
Web应用程序开发
PowerBuilder9支持Web应用程序开发, 可以通过多种技术实现Web应用程序的开
PowerBuilder9的特点与优势
易用性
PowerBuilder9提供了直观 的图形化开发环境,使得开 发人员能够快速构建应用程 序。
高效性
PowerBuilder9支持高效的 数据库访问和操作,提供了 多种数据窗口控件,方便开 发人员处理数据。
跨平台性
PowerBuilder9可以在多种 操作系统上运行,如 Windows、Linux等,方便 开发人员在不同平台上部署 应用程序。
数据库配置
在PowerBuilder中,用户需要配置数据库连接参数,如服务器地址、用户名、密码等,以确保能够成 功连接数据库。
数据窗口对象的使用
数据窗口设计
数据窗口是PowerBuilder中用于展示和 操作数据库数据的重要对象。用户可以 在数据窗口中定义数据列、数据类型、 数据编辑方式等。
VS
数据窗口操作
06 PowerBuilder9高级特性
CHAPTER
分布式应用程序开发
分布式应用程序 PowerBuilder9支持分布式应用 程序的开发,允许应用程序在多 个计算机上运行,实现资源共享 和负载均衡。
分布式数据库访问 PowerBuilder9支持对分布式数 据库的访问,使得应用程序可以 同时访问多个数据库,提高数据 处理能力。
powerbuilder是美国著名的数据库应用开发工具
powerbuilder是美国著名的数据库应用开发工具,现已被Sybase收购,推出的可视化数据库集成开发工具,它是一个专业的客户机/服务器应用程序开发工具。
PowerBuilder目前的最新版本是11.0,它能够设计传统的基于客户机/服务器体系结构的应用系统,可以部署.NET Smart Client、Web Services,并可利用将应用程序部署到网站上,直接在浏览器上呈现开发出的应用程序。
最主要特点是除了原本的Java之外,多了.NET的选择,整合进更多微软的架构,并针对整合式开发环境(IDE)更新使用者接口。
PowerBuilder针对.NET的整合分为四个阶段,从第9版就开始支持.NET。
Sybase台湾代理商倍力信息产品营销部协理李翰林认为,在11版之前对于.NET的支持度并不完整,这次则能够迅速将应用程序转换成.NET Winforms或ASP .NET2 Webforms,不须重新写程序。
集成了矢量图形,丰富的流动文字支持flow text support,3D视觉效果和强大无比的控件模型框架。
PowerBuilder 12以.NET为基础,也加强了PowerBuilder的核心技术DataWindows。
李翰林表示,以前的PowerBuilder可以利用DataWindows开发网络应用程序,不过是写好程序后再转成Java 模式,而现在可以直接将程序转成Smart Client、Web Services等微软的功能。
它另外提供智能型更新器(Intelligent Updater),是一个新的组件,可以让.NET Windows Forms应用程序自动更新。
是提供开发和数据库相关的程序,并和大部分的数据库都能互相连结,包括Oracle Database、微软SQL Server、IBM DB2等等。
李翰林说:「几乎所有数据库都能连结。
」他强调,PowerBuilder本来就是一个很开放的工具,因此甚至连一些很小的数据库都能和PowerBuilder11互通。
《PowerBuilder程序设计》前8章课后习题与参考答案--吐血推荐--史上最全--精华版
《PowerBuilder程序设计》前8章课后习题与参考答案考试范围:前7章课后习题第1章管理信息系统概述(7页)一、填空题1、管理信息系统开发所常用的体系结构包括两种:C/S 模式和B/S 模式。
2、在B/S模式下,客户端只需要安装某种浏览器即可,不需要安装任何特别开发的软件,应用程序的应用逻辑由web服务器完成。
3、信息系统开发方法主要包括:结构化生命周期法、快速原型法、面向对象方法。
目前流行的系统开发方法是面向对象方法。
二、问答题1、对面对象开发方法包括哪几个典型阶段?答案:(1)系统调查和需求分析(2)面向对象分析阶段(3)面向对象设计阶段(4)面向对象程序设计阶段(5)面向对象测试阶段2、试述两种系统体系结构的优缺点。
答案:(1)C/S优点:降低了系统的通讯开销;能充分发挥客户端PC的处理能力,很多工作可以在客户端处理后再提交给服务器;客户端响应速度快。
缺点:需要针对不同的操作系统开发不同版本的软件;当用户需求频繁变更时,软件产品更新换代快导致代价高、效率低;很难适应百台电脑以上的局域网用户同时使用。
(2)B/S优点:可以在任何地方进行操作而不用安装任何专门的软件;只需要一台能上网的电脑就能使用,客户端零维护;系统的扩展性非常容易。
缺点:安全性难以保证,容易受到外来病毒或黑客的攻击。
第2章PowerBuilder11概述(43页)一、填空题1、工作区(Workspace)就是PowerBuilder开发应用程序的一个开发平台。
2、PowerBuilder 应用对象是应用程序的入口。
3、PowerBuilder开发环境和应用程序访问数据库之前,应首先建立与数据库的连接。
4、窗口对象保存为w_main,其中w_开头,说明该对象的类型是window ,main代表主窗口。
5、PowerBuilder的开发界面与大多数windows窗口类似,都包含一些基本元素,除此之外的空间默认被分割为四部分:系统树窗口、粘贴窗口、工作区、输出窗口。
PB9应用开发步骤
《PowerBuilder 9.0 数据库应用程序开发》㈠新建工作空间①【开始】→【程序】→ <Sybase> →启动【PowerBuilder9.0】②【文件】→ <new> →[Workspace]选项卡→【Workspace】图标→【OK】③设置路径[C:\temp] →输入文件名:student →【保存】㈡创建目标和应用对象①【new】按钮→[Target]选项卡→【Application】图标→【OK】②输入应用程序名:Student →设置“Library”路径[C:\temp] →【保存】→【Finish】㈢建立数据库 newdb,并自动连接数据库①启动【PowerBuilder9.0】②【Database】按钮→展开<ODB ODBC> →展开<Utilities> →双击<Create ASA Database>④User ID:DBA → Password: sql → Database Name:C:\temp\newdb.db→【OK】㈣在数据库中建立数据表(S、C、SC)和视图①建立数据表(S、C、SC)【Database】按钮→右击【Tables】文件夹→选择<New Table> →→定义表的字段(...) →单击【Exit】→【是】存盘→→输入表名(S、C、SC) →【OK】②为数据表(S、C、SC)指定主键展开【Tables】→右击表名(S) →左击<Add to Layout> →→右击表的标题栏→ <New> →<Primary Key> →选择“Column”:中主键字段(sno) →【Exit】→【是】③为数据表指定外键(sno 和 cno)●右击表SC的标题栏→ <New> →<Foreign Key> →<General>选项卡→→输入Foreign Key:aaaa →选择“Columns:”右边<sno>字段作外键●单击<Primary Key>选项卡→选择<Table:>(下拉表)中的<S>作参照表→【Exit】→【是】(保存)●同样,为表 SC指定另一个外键 cno (参照表为 C)④在表中输入数据●右击表S →选择<Edit Data> →选择 <Grid>●右击输入窗口→选择<Insert Row> →输入记录数据●为表SC输入数据●为表C输入数据⑤创建视图●右击数据库newdb下<Views>文件夹→选择<New View>●同时选择表 <S>和<SC> →【Open】●选择<Group>选项卡→在表S中选择 sno 和 sname →→将字段<s.sno>和<s.snane>拖至右边窗口●选择<Compute>选项卡→输入聚合操作: avg(score)→起别名:avg_score●选择<Syntax>选项卡→核对语句:CREATE VIEW …GROUP BY …●单击菜单行【Exit】→【是】(保存) →输入视图名:S_SC →【Create】㈤创建数据窗口(d_s, d_sc, d_c, d_s_sc, d_s_sc_c )① (PowerBar)【New】→[DataWindow]选项卡→【Grid】图标→【OK】②选择【Quick Select】数据源→【Next】③选择表<S> →【Add All】→【OK】④选择默认字体和颜色→【Next】→【Finish】⑤【Exit】→【是】→命名:d_s →【OK】⑥为d_sc, d_c, d_s_sc, d_s_sc_c创建数据窗口⑦创建d_s_sc_c数据窗口:... 选择【Quick Select】数据源→【Next】→选择S、C、SC三个表→【Open】→选择sno、sname、cno、cname、tname字段→【Exit】→(字体)【Next】→【Finish】→【Exit】→→【是】→命名:d_s_sc_c㈥创建应用程序用户界面窗口(w_main,w_manipulation,w_course_query,. . .)⑴创建主窗口 w_main① (PowerBar)【New】→[PB Object]选项卡→【Window】图标→【OK】②右击工具栏→分别打开<PainterBar1>、<PainterBar2>、<PainterBar3>画板工具栏③单击<PainterBar1>中下拉按钮→(展开控件窗口)④选择静态文本框控件【A】→单击主窗口→调整文本框位置和大小→→在文本框属性窗口输入Text:<学生选课系统> →设置字体和颜色⑤选择命令按钮控件【OK】→单击主窗口→调整命令按钮位置和大小→→在命令按钮属性窗口输入Text:<数据操作> →设置字体大小→分别创建其它控件. . .⑥单击主菜单行退出按钮【Exit】→选【是】→输入窗口对象名:w_main→【OK】⑵创建“数据操作”窗口 w_manipulation①创建一个静态文本框控件:<请输入数据:>②创建一个单行编辑框控件: (输入数据)③创建三个数据窗口控件: <学生表>、 <选课表>、 <课程表>④创建 8个命令按钮控件: [BROWSE] 、 [INSERT_SC] 、 [DELETE_SC] [UPDATE_SC] 、 [RESET] 、[QUERY_SNO] 、 [OK] 、 [EXIT]⑤为窗口命名:w_ manipulation⑥→【OK】⑶创建“课程查询”窗口 w_course_query①创建2个静态文本框控件:<请输入数据:>、<查询字段:>②创建1个单行编辑框控件: (输入数据)③创建1个下拉式列表框控件: (选择查询字段)④创建1个数据窗口控件: <课程表>⑤创建 2个命令按钮控件: [查询] 、 [返回主窗口]⑥创建含2个单选按钮的分组框: <查询方式>⑦为窗口命名:w_ course_query →【OK】⑷创建“学生选课”窗口 w_select_course⑸创建“课程更新”窗口 w_course_update⑹创建“查询学生平均成绩”窗口 w_query_s_avg㈦编写脚本(事件驱动程序)⒈启动应用程序(student.pbl)的open事件脚本【操作步骤】① (PowerBar)【Open】按钮 (打开<Open>对话框)②选择“Objects of Type :” 为 [Application]③选择“Objects Name :” 为 [Student]④单击【OK】 (打开应用程序“Open”事件编辑窗口)⑤在编辑窗口输入如下“脚本” :SQLCA.DBMS = “ODBC“ // 数据库厂商名称SQLCA.AutoCommit = False // 定义程序为手工提交事务SQLCA.DBParm = "Connectstring='DSN=newdb_01'"connect; // 连接数据源newdb_01open(w_main) // 打开主窗口⒉在主窗口为各个控件编写驱动程序(1) 命令按钮【数据操作】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【w_main】 (打开主窗口)②单击【数据操作】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:open(w_manipulation) // 打开“数据操作窗口”close(parent) // 关闭主窗口⑤单击【保存】按钮(2) 命令按钮【课程查询】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【w_main】 (打开主窗口)②单击【课程查询】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:open(w_course_query) // 打开“课程查询”窗口close(parent) // 关闭主窗口⑤单击【保存】按钮(3) 命令按钮【学生选课】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【w_main】 (打开主窗口)②单击【学生选课】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:open(w_select_course) // 打开“学生选课”窗口close(parent) // 关闭主窗口⑤单击【保存】按钮(4) 命令按钮【课程更新】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【w_main】 (打开主窗口)②单击【课程更新】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:open(w_course_update) // 打开“课程更新”窗口close(parent) // 关闭主窗口⑤单击【保存】按钮(5) 命令按钮【查询学生平均成绩】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【w_main】 (打开主窗口)②单击【平均成绩】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:open(w_query_s_avg) // 打开“查询学生平均成绩”窗口close(parent) // 关闭主窗口⑤单击【保存】按钮(6) 命令按钮【退出】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【w_main】 (打开主窗口)②单击【退出】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:close(parent) // 关闭主窗口⑤单击【保存】按钮⒊在“数据操作”窗口为各个控件编写驱动程序(脚本)(1) 在窗口的Open事件中编写脚本【操作步骤】①展开【student.pbl】②双击【 w_manipulation 】窗口图标 (打开“数据操作” 窗口)③单击 [Open] 选项卡④在“script for open”(打开脚本)编辑窗口输入如下语句:dw_1.settransobject(sqlca) // 为控件dw_1设置通讯区域 sqlcadw_2.settransobject(sqlca) // 为控件dw_2设置通讯区域 sqlcadw_3.settransobject(sqlca) // 为控件dw_3设置通讯区域 sqlcashl_1.setfocus() // 将焦点设置到控件 sle_1⑤单击【保存】按钮(2) 命令按钮【BROWSE】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_manipulation】②单击【BROWSE】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:dw_1.retrieve() // 从数据库的S表中检索全部数据dw_2.retrieve() // 从数据库的SC表中检索全部数据dw_3.retrieve() // 从数据库的C表中检索全部数据⑤单击【保存】按钮(3) 命令按钮【RESET】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_manipulation】②单击【RESET】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:string query , sqldw_1.reset()dw_2.reset()dw_3.reset()query = ""dw_1.setfilter(query)dw_1.filter()dw_2.setfilter(query)dw_2.filter()sql = "select * from c"dw_3.setsqlselect(sql)dw_3.setfilter(query)dw_3.filter()shl_1.text=""shl_1.setfocus()⑤单击【保存】按钮(4) 命令按钮【INSERT_SC】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_manipulation】②单击【 INSERT_SC 】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:dw_2.insertrow(0)dw_2.scrolltorow(dw_2.rowcount())dw_2.setfocus()⑤单击【保存】按钮(5) 命令按钮【DELETE_SC】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_manipulation】②单击【 DELETE_SC 】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:dw_2.deleterow(0) // 从SC表中删除当前行:deleterow()⑤单击【保存】按钮(6) 命令按钮【UPDATE_SC】的 clicked 事件 p.243【操作步骤】①展开【student.pbl】→双击【 w_manipulation】②单击【 UPDATE_SC 】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked” (单击脚本) 编辑窗口输入如下语句:int g1, g2g1 = integer(shl_1.text)g2 = dw_2.GetItemNumber(dw_2.GetRow(), 3)dw_2.SetItem(dw_2.GetRow(), 3, g2+g1)⑤单击【保存】按钮(7) 命令按钮【OK】的 clicked 事件 p.243【操作步骤】①展开【student.pbl】→双击【 w_manipulation】②单击【 OK 】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked” (单击脚本) 编辑窗口输入如下语句:if dw_2.update() = 1 thencommit;elserollback;end if⑤单击【保存】按钮(8) 命令按钮【QUERY_SNO】的 clicked 事件 p.243【操作步骤】①展开【student.pbl】→双击【 w_manipulation】②单击【 QUERY_SNO 】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked” (单击脚本) 编辑窗口输入如下语句:string query, sqlquery = "sno='"+shl_1.text+"'"dw_1.setfilter(query)dw_1.filter()dw_1.retrieve()dw_2.setfilter(query)dw_2.filter()dw_2.retrieve()sql = "select c.* from sc, c where o=o andsc.sno='"+shl_1.text+"'"dw_3.setsqlselect(sql)dw_3.retrieve()shl_1.setfocus()⑤单击【保存】按钮(9) 命令按钮【EXIT】的 clicked 事件 p.243【操作步骤】①展开【student.pbl】→双击【 w_manipulation】②单击【 EXIT 】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked” (单击脚本) 编辑窗口输入如下语句:open(w_main)close(parent)⑤单击【保存】按钮⒋在“课程查询”窗口为各个控件编写驱动程序(脚本)(1) 在窗口的Open事件中编写脚本【操作步骤】①展开【student.pbl】②双击【 w_course_query 】窗口图标 (打开“课程查询” 窗口)③单击 [Open] 选项卡④在“script for open”(打开脚本)编辑窗口输入如下语句:dw_1.settransobject(sqlca)dw_1.retrieve()⑤单击【保存】按钮(2) 命令按钮【查询】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_course_query】②单击【查询】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:dw_1.setfilter("")if rb_1.checked = true thenchoose case ddlb_1.textcase "课程号"dw_1.setfilter("cno='"+shl_1.text+"'")case "课程名"dw_1.setfilter("cname='"+shl_1.text+"'")case "教师名"dw_1.setfilter("tname='"+shl_1.text+"'")end chooseelsechoose case ddlb_1.textcase "课程号"dw_1.setfilter("cno like" + "'%" +shl_1.text+"%'") case "课程名"dw_1.setfilter("cname like" + "'%" +shl_1.text+"%'") case "教师名"dw_1.setfilter("tname like" + "'%" +shl_1.text+"%'") end chooseend ifdw_1.retrieve()shl_1.setfocus()⑤单击【保存】按钮(3) 命令按钮【返回主窗口】的 clicked 事件p.243【操作步骤】①展开【student.pbl】→双击【 w_ w_course_query】②单击【返回主窗口】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked” (单击脚本) 编辑窗口输入如下语句:open(w_main)close(parent)⑤单击【保存】按钮⒌在“学生选课”窗口为各个控件编写驱动程序(脚本)(1) 在窗口的Open事件中编写脚本p.245【操作步骤】①展开【student.pbl】②双击【 w_select_course 】窗口图标 (打开“学生选课” 窗口)③单击 [Open] 选项卡④在“script for open”(打开脚本)编辑窗口输入如下语句:dw_1.settransobject(sqlca)dw_1.setfilter("")dw_1.retrieve()int numnum = dw_1.rowcount()st_4.text = string(num)shl_1.setfocus()⑤单击【保存】按钮(2) 命令按钮【按学号查询】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_select_course】②单击【按学号查询】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:if shl_1.text = "" thendw_1.setfilter("")elsedw_1.setfilter("s_sno='"+shl_1.text+"'")end ifdw_1.retrieve()int numnum = dw_1.rowcount()st_4.text = string(num)shl_1.setfocus()⑤单击【保存】按钮(3) 命令按钮【选课】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_select_course】②单击【选课】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:if shl_1.text="" or shl_2.text="" thenmessagebox("提示!","输入框不能为空!",exclamation!, ok!, 2) elsestring cnoselect cno into:cno from sc where sno=:shl_1.text and cno=:shl_2.text;if cno=shl_2.text thenmessagebox("提示!","你已经选过该课程!",exclamation!, ok!, 2) elseint numberselect count(*) into: number from c where cno=:shl_2.text;if number=0 thenmessagebox("提示!","该课程不存在!",exclamation!, ok!, 2)elseinsert into sc(sno,cno,score)value(:shl_1.text, : shl_2.text, null);end ifend ifend ifshl_2.setfocus()⑤单击【保存】按钮(4) 命令按钮【退课】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_select_course】②单击【退课】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:if shl_1.text="" or shl_2.text="" thenmessagebox("提示!","输入框不能为空!",exclamation!, ok!, 2) elseint numberselect count(*) into: number from sc where sno=:shl_1.textand cno=:shl_2.text;if number=0 thenmessagebox("提示!","你未选修过该课程!",exclamation!, ok!, 2)elsedelete from sc where sno=:shl_1.text and cno=:shl_2.text;end ifend ifshl_2.setfocus()⑤单击【保存】按钮(5) 命令按钮【更新选课表】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_select_course】②单击【更新选课表】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:dw_1.setfilter("s_sno='"+shl_1.text+"'")dw_1.retrieve()int numnum = dw_1.rowcount()st_4.text = string(num)shl_2.setfocus()⑤单击【保存】按钮(6) 命令按钮【返回主窗口】的 clicked 事件 p.243【操作步骤】①展开【student.pbl】→双击【 w_select_course】②单击【返回主窗口】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked” (单击脚本) 编辑窗口输入如下语句:open(w_main)close(parent)⑤单击【保存】按钮⒍在“课程更新”窗口为各个控件编写驱动程序(脚本) ppt.94(1) 在窗口的Open事件中编写脚本p.245【操作步骤】①展开【student.pbl】②双击【 w_course_update 】窗口图标 (打开“课程更新” 窗口)③单击 [Open] 选项卡④在“script for open”(打开脚本)编辑窗口输入如下语句:int numberdw_1.settransobject(sqlca)dw_1.retrieve()number = dw_1.retrieve()st_1.text = string(number)⑤单击【保存】按钮(2) 命令按钮【新增课程】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_course_update】②单击【新增课程】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:dw_1.insertrow(0)dw_1.scrolltorow(dw_1.rowcount())dw_1.setfocus()cb_1.enabled = false⑤单击【保存】按钮(3) 命令按钮【保存课程】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_course_update】②单击【保存课程】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:int numberstring cno, strnumber = dw_1.getrow()cno = dw_1.getitemstring(number,"cno")select cno into:str from c where cno=:cno;if cno=str and cb_1.enabled = false thenmessagebox("提示!","不能增加,此课程已存在!") elsedw_1.update()number = dw_1.retrieve()st_1.text = string(number)cb_1.enabled = trueend if⑤单击【保存】按钮(4) 命令按钮【删除课程】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_course_update】②单击【删除课程】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:int numberstring cno, strnumber = dw_1.getrow()cno = dw_1.getitemstring(number,"cno")select distinct cno into:str from sc where cno=:cno;if cno=str thenmessagebox("提示!","不能删除,此课程已有学生选修!") elsedw_1.deleterow(number)dw_1.update()number = dw_1.retrieve()st_1.text = string(number)end if⑤单击【保存】按钮(5) 命令按钮【返回主窗口】的 clicked 事件 p.248【操作步骤】①展开【student.pbl】→双击【 w_course_update】②单击【返回主窗口】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked” (单击脚本) 编辑窗口输入如下语句:open(w_main)close(parent)⑤单击【保存】按钮⒎在“查询学生平均成绩”窗口为各个控件编写驱动程序(脚本) ppt.101(1) 在窗口的Open事件中编写脚本p.248【操作步骤】①展开【student.pbl】②双击【 w_query_s_avg】窗口图标 (打开窗口)③单击 [Open] 选项卡④在“script for open”(打开脚本)编辑窗口输入如下语句:dw_1.settransobject(sqlca)dw_1.retrieve()⑤单击【保存】按钮(2) 命令按钮【查询】的 clicked 事件【操作步骤】①展开【student.pbl】→双击【 w_query_s_avg】②单击【查询】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked”(单击脚本)编辑窗口输入如下语句:dw_1.setfilter("")if rb_1.checked = true thenchoose case ddlb_1.textcase "学号"dw_1.setfilter("sno='"+shl_1.text+"'")case "姓名"dw_1.setfilter("sname='"+shl_1.text+"'")end chooseelsechoose case ddlb_1.textcase "学号"dw_1.setfilter("sno like"+ "'%" + shl_1.text+"%'") case "姓名"dw_1.setfilter("sname like"+ "'%" + shl_1.text+"%'") end chooseend ifdw_1.retrieve()shl_1.setfocus()⑤单击【保存】按钮(3) 命令按钮【返回主窗口】的 clicked 事件 p.249【操作步骤】①展开【student.pbl】→双击【 w_query_s_avg】②单击【返回主窗口】按钮③单击 [Event List] 选项卡→双击 <clicked( )>④在“script for clicked” (单击脚本) 编辑窗口输入如下语句:open(w_main)close(parent)⑤单击【保存】按钮㈧运行应用程序单击PowerBar【Run】按钮→(显示应用程序主界面)→选择功能按钮********* Finished *********。
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
20 年 第 l 卷 第 2 期 07 7 7
收稿 日期 :0 7 0 — 8 2 0 — 6 2
Po r l e we Bu r应用 程序帕数据 库连疆 技术 id
卢守东
( 广西财经学院计算机与信息管理系 , 广西南 宁,3 0 3 500 )
摘 要 : 绍 了 P w r u dr 用 程序 的数 据库 连 接 技 术 , 介 o eB i e 应 l 并通 过 具 体 的 实例 说 明其 编
程模式。
关键词 :o eB i e ; P w r u dr事务对象 ; l 数据库连接
中图分类号 :P 1 T 3 文献标识码 : A
象 S L A S LC m n a o r ,Q 通讯 区 )该对象在应 用程 序的 Q C (Q o mui tnAe S L ci a , 任何地方均可直接访问。若应用程序只是存取一个 数据 库 , 则直接使用
O e ( _ an# p n w m i)打开 主窗口
为实现与数据库的连接 , 首先要设置事务对象 的有关连接属 。在 以 上脚本 中, 前三行语句即为直接 设置事务对象连接属性 的典型代码 。这 种方式虽然简单 , 缺乏通用性与灵活性 。 但 为此 , 可考虑将事务对 象的连 接属性值保存 在一个配置文 件中 ,以便于根据 实际情况进行 相应 的修 改。而在为事务对 象的连接属性赋 值时, 只需从相应 的配置文件 中读取 即可。这 样 , 即可避免必须通过直接修 改语句来 适应 所用数据库或数据 库 接口的改变 的弊端 。
S L A即可满足需要 。使用 S C QC QL A时 , 无需对 其进行说 明, 无需 执行 也
Pw ru d r 一种优 秀的面 向对象 的数据库应用 开发工具 ,可高 oe ie是 B l 效地实 现对数据库的各种操作 。在 P w r u dr o e i e 应用程 序中 , B l 为实现 对 数据库 的操作 ,首先要建立与数据库的连接 。本文主要对 P w r u dr o eB i e l 应 用程序 的数据库连接技术 进行相应 的介绍 , 供大家参考。
1 事 务对 象简 介
事务对 象是 P w r u dr o eB i e 所提 供 的一 种特殊 的非 可视对 象 ,也 是 l P w r u dr o e i e 中最重要的对象之一。 o e u d r B l P w r i e 及其应用程序与数据库 B l 的连接 , 通过事 务对象实现 的。事务对象共 有 1 个属性 , 就是 5 各属性的 名称 、 类型及说明见表 1 。表 1 前 1 个属性 用于提供 连接数据库 所 中: O 需要的信 息 , 主要包括 D M 标志 、 B S 用户名与用户 口令等 ; 5个属性 用 后 于返回最近一次数据库操作的状态( S L 即 Q 语句的执行信息 )主要包括 , 操 作 是 否 成 功 (Q C d ) S L o e 、出 错 信 息 (Q Eret 与 出 错 代 码 S Lr x T )
维普资讯
科技 情报开发 与经济
文章编号:0 5 6 3 (0 7 2 — 2 2 0 10 — 0 3 2 0 )7 0 1— 2
S IT C F R A I ND V L P E T&E O O Y C— E HI O M TO E E O M N N CN M
S L A. MS=” B ” Q C DB OD C S L AA tC mm t as Q C .uo o i=F l e S L A. P r Q C DB am=” on e t n=D N S oeU D d a WD sl C n et f g S = er;I = b; si P =q ” C N C 连接数据库 ON E T , I QL AS L o e > HE FS C .Q C d < 0T N
O I L sD Lga oPs s
S reN n evr al e
S ig 登 录数据库所在服务器的用户名或用户 I tn r D S ig t n r
Sr g t n i
登 录数据库所在服务器的用 户 口 令
数据库服务器名称 提交 S L语 句的方式 Q
在此 , 配置文件 的格式与实例见表 2 。为从配置文 件中读取设置值 , 可使用 Po l tn ( 与 Po e t ) r e r g ) r d l ( 函数 , i f Si f n 其语法格式为 :
所提 供的数据库接 口的名称 。 D ̄ a abe s UeD s I r
D P s B as L c ok
Si tn rg S n t g i r
Sr g tn i Sr g tn i
所要连接 的数据库名称 连接到数据库 的用户名或用户 I D
连接 到数据库 的用户 如 , 对于 A A数据 库 Soe b 若 其 O B S cr d , . D C数据源为 So , cr 用户 e 名为 d a 口令为 s , b, q 则在应 用对 象的 O e 事件 中, 通过以下脚本代 l pn 可 码来实现与数据库的连 接, 并打 开主窗 口 w n i。 _ mn
Po lSr gfea escinky e tt rfe tn ( l m , t ,e, f d) i i in e o da
(Q D Cd ) 。 S L B oe 等 表 1 事务对象的属性 属性名称 数据类 型
D MS B Sr g tn i
M s gBx” e aeo(错误信息” 数据库 连接未能成功 !” t S n s , ” 。o i !) Spg
R盯 URN ENDI F
说明
D MS标 志 , 际上 是 由 P w r ule B 实 o eB i r d