好文档就是一把金锄头!
欢迎来到金锄头文库![会员中心]
电子文档交易市场
安卓APP | ios版本
电子文档交易市场
安卓APP | ios版本

《PowerBuilder程序设计教程》电子教案 第08章教案.ppt

41页
  • 卖家[上传人]:E****
  • 文档编号:89429986
  • 上传时间:2019-05-25
  • 文档格式:PPT
  • 文档大小:323KB
  • / 41 举报 版权申诉 马上下载
  • 文本预览
  • 下载提示
  • 常见问题
    • 第8章 数据窗口对象的应用,创建数据窗口对象使它和数据库相连接,执行数据的检索、修改、删除等工作注意:数据窗口对象只有通过数据窗口控件才能发挥它的巨大作用 8.1 数据窗口控件的使用 数据窗口控件是窗口中一个标准的PowerBuilder控件,它放在窗口中,是窗口的一部分,不能独立存在数据库中的数据要在数据窗口对象中显示和修改,必须依靠数据窗口控件 把数据窗口控件放在窗口中,使这个数据窗口控件和相应的数据窗口对象关联,通过这个数据窗口控件完成数据窗口对象和数据库的连接 8.1.1 添加数据窗口控件 打开要添加数据窗口控件的窗口,选择菜单【Insert|Control|DataWindow】,在窗口的适当位置点击鼠标左键,这时出现一个空白框,这个空白框就是数据窗口控件结束 放映,第一页,上一页,下一页,最后 一页,8.1.2 更改数据窗口控件属性,常用的属性有: (1)DataObject:设置与数据窗口控件关联的数据窗口对象名称 (2)TitleBar复选框:选中表示数据窗口控件显示标题栏,否则不显示 (3)Title文本框:定义标题栏中标题内容 (4)ControlMenu复选框:选中表示在标题栏上显示控制按钮,否则不显示。

      (5)MaxBox、MinBox:选中这两个复选框分别表示给标题栏添加最大化按钮和最小化按钮 (6)HScrollBar VscrollBar:选择这两个复选框分别表示给数据窗口控件添加水平和垂直滚动条 (7)Border复选框和Border Style下拉列表框:用来设置控件的边界形状 (8)Name:编辑框中的内容表示数据窗口控件名称,编写脚本时使用该名称 (9)Other标签页:设置控件的位置、大小及鼠标在控件中的形状结束 放映,第一页,上一页,下一页,最后 一页,8.1.3 设置数据窗口控件中关联的数据窗口对象,(1)静态关联 选择数据窗口控件,点击右键,选择Properties进入数据窗口控件的属性视窗,在DataObject框中输入要关联的数据窗口对象 (2)动态关联 程序运行过程中,若一个数据窗口控件在不同情况下要关联不同的数据窗口对象,这时就要用脚本控制,实现动态关联 脚本控制语句如下: dw_controlname.dataobject=“d_objectname” 8.2 操作数据窗口对象中数据的前提 程序运行时,要操纵数据窗口对象中的数据,就要在程序中连接数据库,让数据窗口对象与数据库之间建立连接。

      必须首先创建应用程序与数据库之间的连接,应用程序与数据库之间的连接是通过事务对象完成的 (1)什么是事务对象 事务对象是一个传递应用程序与数据库之间信息的一个变量,它驻留在内存中,存储着用于连接数据库及从数据库得到反馈的所有信息,它定义了数据库与应用程序连接的参数一个应用程序开始创建时,系统就自动定义一个名为SQLCA的默认全局变量结束 放映,第一页,上一页,下一页,最后 一页,8.2 操作数据窗口对象中数据的前提,(2)事务对象的属性 事务对象共有15个属性,可以分为两类,一类有10个,用来描述连接数据库的信息,如所连接的数据库的名称;另一类有5个,用来接受有关数据库或最近执行SQL语句的情况或状态,如数据库操作是否成功 AutoCommit:这是一个布尔型属性它指定是否将数据库设置成自动提交所有事物当它为TRUE时,由系统自动提交所有事务,当为FALSE时,用户必须自己在程序中设置事务管理,并在需要的时候对数据库进行提交事务 它的默认值是FALSE DataBase:这是一个字符串类型的属性它指定要连接的数据库名称 DBMS:这是一个字符串类型的属性它指定应用程序所使用的数据库管理系统的名称,如ODBC。

      DBPass:这是一个字符串类型的属性它描述的是用户连接数据库的密码 Lock:这是一个字符串类型的属性它是数据库的保护级别,一般不必给出 LogID:这是一个字符串类型的属性它用于指定登录数据库服务器所需的用户名或用户的ID结束 放映,第一页,上一页,下一页,最后 一页,8.2 操作数据窗口对象中数据的前提,SQLCode:这是一个长整型(Long)的属性它用来指定最近一次数据库操作成功与否的代码,共有三个返回值:0表示操作成功;100表示操作成功,但没有返回数据;-1表示操作失败用户可以从SQLDBCode或SQLErrTex中得到具体详细的错误信息 SQLDBCode:这是一个长整型的属性它包含了数据库错误代码,不同的数据库,错误代码不同,但大部分数据库厂商都用0表示操作成功,100表示成功但没有检索到数据,负数表示没有成功 SQLErrText:这是一个字符串类型的属性它包含了数据库操作的错误信息 UserID:这是一个字符串类型的属性它指定了连接数据库的用户名或用户的ID 8.2.1 使用系统默认的事务对象SQLCA 系统提供了一个默认的全局事务对象SQLCA,可以在程序的任何地方使用这个事物对象。

      结束 放映,第一页,上一页,下一页,最后 一页,8.2.1 使用系统默认的事务对象SQLCA,下面是一个连接ODBC数据库所用的代码: // Profile Exercise SQLCA.DBMS = “ODBC“ SQLCA.AutoCommit = False SQLCA.DBParm = “Connectstring='DSN=exercise'“ 这段脚本用来设置事务对象的属性,一般把它写在应用程序的Open事件中 8.2.2 自己定义事务对象 一般情况下,使用系统提供的全局事务处理对象SQLCA就可以了,但有时需要连接多个数据库,这时只用一个SQLCA就不够了,需要用户自己定义事务对象,因为一个事务对象只能保存一个数据库的连接信息 自己定义事务对象步骤如下: (1)确定事物对象变量的作用域和名称 像变量一样,事务对象的作用域有局部的、实例的、全局的和共享的,声明的地方决定了事务对象的作用域,事务对象变量的类型是transaction声明事务对象的格式为:transaction 用户自定义的事务对象名如要声明一个全局的事务对象sqluser,则在定义全局变量的位置书写transaction sqluser声明语句。

      结束 放映,第一页,上一页,下一页,最后 一页,8.2.2 自己定义事务对象,(2)创建事务对象实例 上面只是声明了一个自定义的事务对象sqluser,但该事务对象并没有创建创建语句如下: 自定义的事务对象名=create transaction 如要创建事物对象sqluser,描述创建的语句为sqluser=create transaction要使得打开应用后,就能使用自己定义的事务处理对象sqluser,则该语句必须写在应用的Open事件中 (3)确定事务对象变量的属性 自定义事务对象的属性设置可参考前面的SQLCA属性的设置,将SQLCA信息拷贝到应用的Open事件后,将其SQLCA改为sqluser即可 // Profile Exercise sqluser.DBMS = “ODBC“ sqluser.AutoCommit = False sqluser.DBParm = “Connectstring='DSN=exercise'“ (4)注意: 系统提供的默认事务对象SQLCA,用户不能声明、创建、删除它,系统会自动处理对它的操作;给事务对象赋值时,只能给事物对象的属性一一赋值,不能将一个事物对象直接赋给另一事务对象。

      结束 放映,第一页,上一页,下一页,最后 一页,8.2.3连接数据库,定义了事务对象之后,要在数据窗口对象中处理数据库中数据,还必须配合其它语句一起使用 (1)connect:数据库连接 该语句表示与数据库连接它的语句结构是: connect [using 事务对象名]; 若是使用sqlca,可以使用两种格式: connect; connect using sqlca; 上面两条语句作用一样,也就是说使用系统默认的sqlca,语句中可以指明,也可以不指明,默认指sqlca 下面两条语句作用不同: connect; connect using sqluser; 第一条使用默认的事务对象sqlca,第二条使用自定义的事务对象sqluser (2)disconnet:断开与数据库的连接 该语句表示断开与数据库的连接,它的语法结构是: disconnect [using 事务对象名]; 使用方法同(1)connect结束 放映,第一页,上一页,下一页,最后 一页,8.2.3连接数据库,(3)commit:提交事务 用来提交当前所做的一切事务,实际上是向数据库提交所有数据修改工作它的语句结构及使用方法同(1)connect。

      (4)rollback:取消事务 它用来回滚当前的所有事务,实际上是取消自上次提交事务以来的这一段时间内所有数据修改工作 它的语句结构及使用方法同前面(1)connect (5)settransobject():事务对象与数据窗口控件关联 通过connect语句,将一个事务对象与数据库连接起来了,但为了能使一个具体的数据窗口访问数据库,还必须把数据窗口控件和事务对象关联起来关联语句中一定要使用数据窗口控件名,而不是数据窗口对象名 使用下面语句将数据窗口控件和事务对象关联语句格式如下: DWControlname.settransobject(TransactionObjectName) 如让dw_1数据窗口控件与sqlca事务对象关联,语句写为dw_1.settransobject(sqlca) 该语句一般写在数据窗口控件所在窗口的Open事件中结束 放映,第一页,上一页,下一页,最后 一页,8.3 操作数据窗口中的数据,8.3.1 检索数据(retrieve) 检索数据使用函数retrieve (1)函数不带参数 格式:dwcontrolname.retrieve() 如数据窗口控件dw_1检索数据,可用dw_1.retrieve()语句。

      这种情况的使用简单,用于没有设定任何参数的数据窗口对象 (2)函数带有n个参数,格式是dwcontrolname.retrieve(参数1,参数2,…,参数n),如数据窗口控件dw_1检索数据,可用dw_1.retrieve(参数1,参数2,…,参数n) 要特别注意,这里参数的个数、类型、与数据窗口对象中定义的变量个数、类型要相对应,若这里给定的参数个数少于数据窗口对象中定义的变量个数,程序运行时就会出现错误;若这里的参数个数多于数据窗口对象中定义的变量个数,程序运行时就会自动去掉后面多余的参数 检索函数多用于settransobject(sqlca)语句后面 (3)函数的返回值 函数返回一个整型值,表示从数据库中检索到的行数;若没有匹配的结果,则返回值是0;若检索中出现了错误,返回值是-1结束 放映,第一页,上一页,下一页,最后 一页,8.3.1 检索数据(retrieve),(4)执行函数时触发的事件 DBError:检索失败时发生 RetrieveRow:每行数据检索出来以后发生 RetrieveStart:检索开始时发生 RetrieveEnd:检索完成后发生 (5)典型应用 dw_1.settransobject(sqlca) dw_1.retrieve( ) 将数据窗口与事务对象关联,并检索数据窗口中数据。

      8.3.2 更新数据(update) Update函数用于把当前数据窗口中从上次执行update或retrieve函数以来进行的所有修改保存到数据库中 (1)常用语法形式如下: DWcontrolname.Update() 如更新数据窗口控件dw_1,脚本写为: dw_1.update()结束 放映,第一页,上一页,下一页,最后 一页,8.3.2 更新数据(update),(2)函数返。

      点击阅读更多内容
      关于金锄头网 - 版权申诉 - 免责声明 - 诚邀英才 - 联系我们
      手机版 | 川公网安备 51140202000112号 | 经营许可证(蜀ICP备13022795号)
      ©2008-2016 by Sichuan Goldhoe Inc. All Rights Reserved.