DELPHI基础教程:数据访问部件的应用及编程(二)[1]
数据集部件的事件
数据集部件TTable或TQuery具有很多的事件 为这些事件编写相应的程序代码可以进行有效性验证 计算可计算字段的值 确认对数据库表的多种操作等等 这些事件及其描述如表 所示
表 数据集部件常用的事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
事 件 描 述
───────────────────────────────────
BeforeOpen Afteropen 在数据集部件被打开之前/之后被触发
───────────────────────────────────
BeforeClose Afterclose 在数据集部件被关闭之前/之后被触发
───────────────────────────────────
BeforeInsert AfterInsert 在数据集部件进入插入状态之前/之后被触发
───────────────────────────────────
BeforeEdit AfterEdit 在数据集部件被编辑之前/之后被触发
───────────────────────────────────
BeforePost AfterPost 在数据集部件投寄被修改的记录之前/之后被触发
───────────────────────────────────
BeforeCancel AfterCancel 在数据集部件取消前一步操作之前/之后被触发
───────────────────────────────────
BeforeDelete AfterDelete 在数据集部件删除当前记录之前/之后被触发
───────────────────────────────────
OnNewRecord 当建立一条新记录时被触发
───────────────────────────────────
OnCalcFields 当为表中的计算字段计算字段值时被触发
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
TTable部件及应用
在前一节里我们介绍了数据集部件TTable 和TQuery 的共同的一些属性和方法 TTable部件是Delphi数据库编程中要经常使用的最重要的部件之一 它是数据库应用程序访问数据库时必须使用的数据集部件之一 在这一节里 我们重点介绍TTable部件特有的属性和方法 TTable部件所有的属性 方法和事件都可以在联机帮助中查到
TTabel部件主要的属性
DatabaseName属性和TableName属性
DatabaseName属性是说明数据库应用程序所操作的数据库的名字 它可以是由BDE定义的数据库的别名 显式说明的数据库文件所在的磁盘路径或者由TDatabase部件定义的一个数据库名 DatabaseName属性常常是一个由BDE定义的数据库的别名 使用由BDE定义的数据库的别名代替数据库实际所在的路径和名字 好处是当实际的数据库存放的位置发生变化时 只需利用BDE简单地设置一下该数据库的别名 而数据库应用程序无需修改 有关BDE的使用请参看BDE的设置应用 TabelName属性用以说明当前TTable部件所连接的实际的数据库表 这两个属性一般都在设计阶段指定 当然在程序运行过程中也可以设置 但是要修改这两个属性时 必须要在TTabel的Active属性为False时进行 当TTable的Active属性为True时 这两个属性是不能被修改和设置的
TableType属性
该属性说明与TTable部件相连接的数据库表的类型 当TableType属性设置成Default时 该属性所说明的数据库表的类型由数据库文件的扩展名决定
● 若数据库文件的扩展名为 DB或没有扩展名 表的类型是Paradox表
● 若数据库文件的扩展名为 DBF时 表的类型是dBASE表
● 若数据库文件的扩展名为 TXT时 表的类型是ASCII表
如果TableType属性不设定为Default 那么与TTable 部件相连的数据库表的类型由TableType中的设置的值决定 不用考虑数据库文件的扩展名
KeyExclusive属性
该属性的一个作用是说明在数据库表中查找记录时 将记录移到与查找值相匹配的记录处还是将记录指针移到与查找值相匹配的记录后面一条记录处 该属性是布尔型变量 当它的值为False时(缺省情况下为False) 将记录指针移到相匹配的记录处 为True时 将记录指针移到相匹配记录的后面一条记录处 该属性另一个作用是在表中指定检索范围时 用来说明是否包括满足过滤条件的边界记录 当KeyExclusive的值为False时 检索范围包括边界记录 否则不包括边界记录 有关详细的操作请参看 限定表中记录的检索范围
IndexFields属性和IndexFieldsCount属性
IndexFields的属性值是数据库表中字段名列表 它包含与TTable部件相连的数据库表中的全部索引字希 IndexFieldsCount属性说明表中索引字段的个数 这两个属性值都是只读的 只有在程序运行过程中可用
IndexName属性和IndexFieldNames属性
IndexName属性中存放著在建立数据库表时为数据库表定义的所有辅助索引名 它是一个辅助索引名列表 是只读属性 IndexFieldNames属性指定用于数据库表索引排序的字段名 多个字段名之间用分号隔开 例如对Customer DB表中的客户记录按邮政编码ZipCode和客户号码CustNo排序时可以设定IndexFieldNames的值为
ZipCode ; CustNo
在IndexFieldNames属性中指定的字段必须存在于相应的数据库表中 否则会导致错误 IndexName和IndexFieldName是互斥的 每次只能指定其中一个属性的值 不能同时为两个属性都指定属性值
lishixinzhi/Article/program/Delphi/201311/25157