知识大全 数据访问部件的应用及编程(二)[4]

Posted 部件

篇首语:有知识的人会得到世人的美誉。本文由小常识网(cha138.com)小编为大家整理,主要介绍了知识大全 数据访问部件的应用及编程(二)[4]相关的知识,希望对你有一定的参考价值。

DELPHI基础教程:数据访问部件的应用及编程(二)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一下吧!

   TDataSource部件的事件

  TDataSource部件具有三个事件

  ● OnDataChange事件

  ● OnStateChange

  ● OnUpdataData

  OnDataChange事件 当与TDataSource相连的数据集中的记录指针的位置发生改变时 该事件就被触发 也就是说当程序调用数据集部件的Next Previous Insert Append等方法导致记录指针的位置发生改变时 便会触发该事件 该事件一般用于保持应用中多个部件之间的同步

  OnUpdataData事件 当数据集部件中当前记录将要被修改时 触发该事件 例如在程序调用post方法之后但在修改后的数据记录真正被写回磁盘中的数据库文件之前触发该事件 在应用中使用非数据浏览部件时要它与数据集保持同步时常使用该事件进行相关的处理

  OnStateChange事件 当与TDataSource部件相连的数据集部件的状态发生改变时 便触发该事件 因为数据集部件的State属性标明了数据集部件当前所处的状态 当数据集的状态发生变化时 使用该事件进行有关的处理是很有用的 在一个具体的应用中 数据集部件的状态常常是频繁地变化的 为了跟踪数据集部件的状态变化 可以用下面例子中的程序代码将数据集部件当前的状态显示在一个标签上

  TForm DataSource OnStateChange(Sender : Tobject)

  var

  S : String;

  begin

  Case Table State of

  dsInactive : S := Inactive ;

  dsBrowse : S := Browse ;

  dsEdit : S := Edit ;

  dsInsert : S := SetKey ;

  dsSetKey : S := SetKey ;

  end;

  Label Caption := S;

  end;

  类似地我们也可以通过检测数据集部件的状态来控制有关的按钮和菜单项是否有效 例如 在一个应用窗体中有一个InsertBtn按钮 用于控制向数据集部件table 对应的数据库表中插入记录 还有一个CancelBtn按钮用于控制是否取消用户对当前记录的修改或插入新记录 下面的程序代码根据Table 的状态来控制这两个按钮的功能(是否有效 在窗体是否变灰暗)

  Form DataSource OnStateChange(Sender : Tobject)

  begin

  InsertBtn Enabled := (Table State = dsBrowse)

  CancelBtn Enabled := Table State in [dsInsert dsEdit dsSetKey]

  end;

  上面的代码中 当Table 处于浏览状态(Browse状态时) 用户是不能够向数据库表中插入新记录的 此时InsertBtn按钮将变灰暗即无效 当Table 不处于Browse状态时 InsertBtn按钮有效 用户是可以向表中插入新记录 同理 只有当Table 处于特入状态(Insert状态)或编辑状态(Edit状态)或查找状态(SetKey状态)时 CancelBtn按钮才有效 也即用户可以取消当前插入的记录 修改当前的记录以及查找到的结果等

   字段部件和字段编辑器的使用

  字段部件有时又称字段对象它对应着数据库表中的列即字段 字段对象是不可见的部件 在Delphi中有两种方式创建字段部件

  ①在应用程序运行过程中 随着数据集部件被激活 对应于数据库表中每一列的字段部件便动态地被创建

  ②在设计过程中 程序设计人员利用字段编辑器(Fields Editor)可以创建永久性的字段部件 即使字段对象对应的数据库表的结构发生了变化时 这些字段部件也不会发生变化

  既然字段部件是对应于数据库表中的各个字段的 而数据库表中的字段有多种数据类型 所以字段部件相应也有多种类型 字段部件的类型与数据库表中的字段的数据类型的对应关系如表 所示

  表 字段部件的类型

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━━

  字段部件的类型 对应的数据类型

  ────────────────────────────

  TStringField 字符串类型的字段

  TSmallIntField 短整数类型的字段

  TIntegerField 整数类型的字段

  ordField 正整数类型的字段

  TBooleanField 布尔型字段

  TFloatField 浮点数类型的字段

  TCurrenCyField 货币型字段

  TDataField 日期型

  TTimeField 时间型

  TBCDField 小数位数固定的浮点数

  TDataTimeField 日期时间型字段

  ━━━━━━━━━━━━━━━━━━━━━━━━━━━

  我们在本书中只介绍一些常见类型的字段部件的使用 其他类型字段部件的使用可以参看联机帮助文件

  返回目录 DELPHI基础教程

       编辑推荐

       Java程序设计培训视频教程

       J EE高级框架实战培训视频教程

  Visual C++音频/视频技术开发与实战

  Oracle索引技术

  ORACLE G数据库开发优化指南

  Java程序性能优化 让你的Java程序更快 更稳定

  C嵌入式编程设计模式

  Android游戏开发实践指南

cha138/Article/program/Delphi/201311/25160

相关参考

知识大全 数据访问部件的应用及编程(二)[2]

DELPHI基础教程:数据访问部件的应用及编程(二)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 数据访问部件的应用及编程(二)[1]

DELPHI基础教程:数据访问部件的应用及编程(二)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 数据访问部件的应用及编程(一)[4]

DELPHI基础教程:数据访问部件的应用及编程(一)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 数据访问部件的应用及编程(三)[4]

DELPHI基础教程:数据访问部件的应用及编程(三)[4]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 数据访问部件的应用及编程(三)[1]

DELPHI基础教程:数据访问部件的应用及编程(三)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 数据访问部件的应用及编程(三)[2]

DELPHI基础教程:数据访问部件的应用及编程(三)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 数据访问部件的应用及编程(一)[3]

DELPHI基础教程:数据访问部件的应用及编程(一)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 数据访问部件的应用及编程(一)[2]

DELPHI基础教程:数据访问部件的应用及编程(一)[2]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 数据访问部件的应用及编程(一)[1]

DELPHI基础教程:数据访问部件的应用及编程(一)[1]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一

知识大全 数据访问部件的应用及编程(三)[3]

DELPHI基础教程:数据访问部件的应用及编程(三)[3]  以下文字资料是由(全榜网网www.cha138.com)小编为大家搜集整理后发布的内容,让我们赶快一起来看一