《数据库应用技术——PowerBuilder应用系统开发》-周建芳-电子教案 PB09

上传人:E**** 文档编号:89403460 上传时间:2019-05-24 格式:PPT 页数:50 大小:514.50KB
返回 下载 相关 举报
《数据库应用技术——PowerBuilder应用系统开发》-周建芳-电子教案 PB09_第1页
第1页 / 共50页
《数据库应用技术——PowerBuilder应用系统开发》-周建芳-电子教案 PB09_第2页
第2页 / 共50页
《数据库应用技术——PowerBuilder应用系统开发》-周建芳-电子教案 PB09_第3页
第3页 / 共50页
《数据库应用技术——PowerBuilder应用系统开发》-周建芳-电子教案 PB09_第4页
第4页 / 共50页
《数据库应用技术——PowerBuilder应用系统开发》-周建芳-电子教案 PB09_第5页
第5页 / 共50页
点击查看更多>>
资源描述

《《数据库应用技术——PowerBuilder应用系统开发》-周建芳-电子教案 PB09》由会员分享,可在线阅读,更多相关《《数据库应用技术——PowerBuilder应用系统开发》-周建芳-电子教案 PB09(50页珍藏版)》请在金锄头文库上搜索。

1、第9章 数据窗口控件,本章要点: 使用数据窗口控件 数据的检索与更新 缓冲区与编辑控件 数据窗口控件常用方法(函数) 数据窗口控件事件 数据存储对象 家庭理财信息系统中的数据窗口控件和数据存储对象编程,第9章 数据窗口控件,数据窗口控件将用户界面和数据窗口对象连接起来,使得用户通过操作用户界面来实现对数据库的操作。 注意:数据窗口对象和数据窗口控件间的不同。数据窗口对象可进行数据库访问,作为单独对象保存在应用库中;数据窗口控件是普通的窗口控件,只有与某个数据窗口对象关联起来,通过对数据窗口对象操作的方法来实现对数据库的访问,不能单独保存在应用库中,必须和所在窗口一起保存在窗口对象中,窗口对象保

2、存在应用库中。,9.1 使用数据窗口控件,9.1.1 使用数据窗口控件的一般步骤 在数据窗口画笔中创建数据窗口对象,保存到应用库。 在窗口画笔中创建窗口对象,放置数据窗口控件,保存窗口对象到应用库。 设置数据窗口控件的属性,将数据窗口控件和指定的数据窗口对象联系起来。 确保应用程序已经与目的数据库连接成功。一般在应用程序对象的Open 事件中连接。 为数据窗口控件指定用于连接和操作数据库的事务对象,缺省事务对象是SQLCA。 针对具体应用,编写数据窗口控件事件处理程序。,9.1 使用数据窗口控件,9.1.2 添加数据窗口控件 以在窗口上放置数据窗口控件为例说明: 打开要放置数据窗口控件的窗口。

3、 打开控件选择图标列表,选择数据窗口控件图标或选择菜单项Insert|Controls|Datawindow。 把数据窗口控件放置窗口上想放置的地方,会出现一个空白数据窗口控件。 移动控件位置,调整数与窗口的尺寸到合适的大小。,9.1 使用数据窗口控件,9.1.3 设置数据窗口控件属性 设置数据窗口属性有两种办法:一种在设计阶段的属性窗口中进行;一种是通过编程来动态修改和设置。 其中最重要的属性之一就DataObject属性,它指定与数据窗口控件连接的数据窗口对象。可以一对一的建立联系;也可以是多个不同的数据窗口控件与同一个数据窗口对象联系起来,或者在运行过程中通过编程动态设置一个数据窗口控件

4、和多个不同的数据窗口对象的联系。,9.1 使用数据窗口控件,有两种办法连接数据窗口控件与数据窗口对象。 1在数据窗口控件的属性窗口设置 步骤如下: 在窗口上选中要连接数据窗口对象的数据窗口控件。 在属性窗口中显示的是选中数据窗口控件的属性。在General标签页中的DataObject框中输入要联系的数据窗口对象名字。或点击该框右边的打开按钮,打开Select Object对话框,选择要联系的数据窗口对象后点击OK按钮关闭对话框。,9.1 使用数据窗口控件,2在脚本中动态修改 语法格式为:Dwcontrol.DataObject=Dwobjectname 例如,指定与数据窗口控件dw_1 联系

5、的数据窗口对象为d_txl,相应的语句为: dw_1.dataobject = “d_txl” 注意:由Dwobjectname指定的数据窗口对象必须已经在数据窗口画笔中创建好并保存在应用程序可搜索路径下的应用库中,否则会造成运行时错误(Run_Time Error)。,9.1 使用数据窗口控件,9.1.4 为数据窗口控件设置事务对象 事务对象是用来存储应用程序与目标数据库的连接信息和操作数据库后返回的状态信息。在连接目标数据库之前,必须将目标数据库的相关信息记录在某个事务对象的连接属性中,通过嵌入式SQL语句connect到目标数据库。 数据窗口对象操作数据库时的所有信息也记录在某个事务对象

6、中,因此,在通过与数据窗口控件联系的数据窗口对象操作数据库之前,必须告诉数据窗口控件利用哪一个事务对象与数据库进行通信。 数据窗口控件提供了两个函数来完成设置: SetTrans函数 SetTransObject函数,9.1 使用数据窗口控件,1SetTrans函数 将特定的事务对象复制到数据窗口控件事务对象中。 语法格式:dwcontrol.SetTrans( transaction ) 利用SetTrans设置事务对象后,数据窗口可以自动管理事务的处理,包括自动执行数据库连接与断开,出错时自动撤消更新操作等,不需再在脚本中执行connect、disconnect、commitrollbac

7、k等语句。 缺点:执行过程中的任何错误都会导致自动执行rollback,用户无法控制处理;一次数据库连接会占用比较多的系统资源,容易造成系统资源的紧张。,9.1 使用数据窗口控件,2SetTransObject函数 用来在程序中指定数据窗口控件在进行数据库操作时,使用指定的事务对象与数据库进行通信。 语法格式:dwcontrol.SetTransObject( transaction ) 使用SetTransObject函数设置事务对象后,数据窗口的事务处理由脚本控制,除非在和数据库建立联接之前将事务对象的AutoCommit属性设置成了True。进行数据库操作之前必须确保已经成功将应用程序与

8、目标数据库连接且保持不断开,所有操作完成后在脚本中通过disconnect语句断开连接以释放掉占据的系统资源。,9.2 数据的检索与更新,9.2.1 数据的检索 Retrieve函数,将数据从数据库中检索出来并显示在数据窗口中。 其语法格式:dwcontrol.Retrieve (argument list ) 调用Retrieve函数检索数据时可能有如下几种情况: 定义数据源时where子句和Retrieve函数调用都没有设置检索参,检索数据时将检索的数据的总行数存放在长整型变量rtnum中。 定义数据源时where子句中没有检索参数,调用Retrieve函数时指定了检索参数中的检索参数,这

9、时能够检索到数据,系统自动忽略多余的参数。,9.2 数据的检索与更新,定义了检索参数并包含在数据窗口对象的where子句中,但在调用Retrieve函数时检索参数列表为空,则执行Retrieve函数时,系统会打开一个Specify Retrieval Arguments对话框,要求用户输入检索参数后,再开始检索数据。,9.2 数据的检索与更新,定义了检索参数包含在where子句中,而在调用Retrieve函数时检索参数列表中的参数个数少于where子句中使用的检索参数,则在执行检索函数时系统显示错误提示用户检索参数不够。反之,若多于where子句中使用的检索参数时,系统忽略多余的检索参数并执行

10、检索任务。 定义了检索参数在where子句中,在调用Retrieve函数时检索参数列表中指定的参数个数、数据类型、参数排列顺序都与数据源中定义检索参数时一样,系统正确执行检索任务。,9.2 数据的检索与更新,9.2.2 数据的更新 用户在对数据窗口控件进行操作之后,将一些已经发生变化的数据保存到数据库中去。 语法格式:dwcontrol.Update ( accept , resetflag ) 参数accept和resetflag都是Boolean型的可选参数,意义如下: accept: 缺省值为True, 表示在更新数据库之前将用户当前输入的数据放到数据窗口中,否则不放。 Resetfla

11、g:缺省值为True,表示数据窗口控件自动复位更新标志,否则不复位更新标志。,9.3 缓冲区与编辑控件,9.3.1 数据窗口控件的缓冲区 用来记录哪些数据修改过、需要删除、新增加等信息,以便数据保存时能够正确修改数据库。 常用的四种缓冲区: 主缓冲区(Primary!):保存当前显示在数据窗口中的所有数据以及各行和列的状态,可以控制数据窗口只保存修改过的数据。 删除缓冲区(Delete!):保存所有删除了的数据。在没有提交到数据库之前,可以将数据恢复;提交后则清空该缓冲区中。 过滤缓冲区(Filter!):保存的是那些满足数据源定义中where和having子句中的条件但没有通过过滤规则的数据

12、。 原始缓冲区(Oraginal!):保存从数据库中检索到的初始值。,9.3 缓冲区与编辑控件,9.3.2 编辑控件 当用户对数据窗口控件中的数据项进行编辑时,系统自动创建一个编辑控件叠加在获得输入焦点的可编辑数据项上。当用户通过鼠标点击或按下Tab键改变输入焦点时,这个编辑控件也移动到新的获得输入焦点的数据项上。,9.3 缓冲区与编辑控件,编辑控件的工作流程,成功输入焦点,成功,按键 返回,9.4 数据窗口控件常用方法(函数),9.4.1 与数据检索有关的函数 1DBCancel函数 遇到长时间和大量资源的查询时,可用此函数终止检索 语法格式:dwcontrol.DBCancel ( ) 2

13、RowCount函数 返回主缓冲区中记录的数目。 语法格式:dwcontrol.RowCount ( ),9.4 数据窗口控件常用方法(函数),9.4.2 用于操作数据行的函数 1插入行函数InsertRow 向数据窗口控件的主缓冲区插入一个空行。 语法格式:dwcontrol.InsertRow ( row ) 其中row是long型,指定新插入行在主缓冲区中的行号。 2删除行函数DeleteRow 用于向数据窗口控件的主缓冲区中删除一行。 语法格式:dwcontrol.DeleteRow ( row ) 3得到当前行的行号 GetRow 在数据比较多时,让用户知道当前行的行号。 语法格式:

14、dwcontrol.GetRow ( ),9.4 数据窗口控件常用方法(函数),4设置某行为当前行SetRow 将指定行号的行设置为当前行。 语法格式:dwcontrol.SetRow (row ) 当该函数执行时,可能触发的事件: ItemChanged; RowFocusChanged; ItemFocusChanged; 5选中/不选中某行SelectRow 选中数据窗口中的某行,呈高亮显示。 语法格式:dwcontrol.SelectRow (row, select ) 注意:同一时刻,可以有多行为选中状态。,9.4 数据窗口控件常用方法(函数),6得到被选中的行GetSelected

15、Row 得到选中行的行号。 语法格式:dwcontrol.GetSelectedRow(row) 7得到被点击行的行号 GetClickedRow 得到被点击行的行号。 语法格式:dwcontrol.GetClickedRow ( ) 注意:在数据行上单击/双击时,会触发数据窗口控件的Clicked/DoubleClicked事件,事件处理完毕后被点击的行才会成为当前行。故在Clicked/DoubleClicked事件中不能调用GetRow函数获得当前行,要通过事件参数row或GetClickedRow来获得被点击行的行号。,9.4 数据窗口控件常用方法(函数),9.4.3 用于操作数据列的

16、函数 1得到当前列列号GetColumn 语法格式:dwcontrol.GetColumn ( ) 2得到当前列列名GetColumnName 语法格式:dwcontrol.GetColumnName ( ) 3得到被点击列的列号GetClickedColumn 语法格式:dwcontrol.GetClickedColumn ( ) 4设置当前列SetColumn 将指定列设置为当前列。 语法格式:dwcontrol.SetColumn (Column ),9.4 数据窗口控件常用方法(函数),9.4.4 操作数据项的值 1得到数据项的值 GetItem系列函数 返回与数据项相应的数据类型,每一种数据类型都设置有一个函数,语法格式分别为: dwcontrol.GetItemNumber(row,column,dwbuffer,originalvalue) dwcontrol.GetItemDecimal(row,column,dwbuffer,originalvalue) d

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 高等教育 > 大学课件

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号