数据集部件的事件
数据集部件TTable或TQuery具有很多的事件为这些事件编写相应的程序代码可以进行有效性验证计算可计算字段的值确认对数据库表的多种操作等等这些事件及其描述如表所示
表 数据集部件常用的事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
事 件 描 述
───────────────────────────────────
BeforeOpenAfteropen 在数据集部件被打开之前/之后被触发
───────────────────────────────────
BeforeCloseAfterclose 在数据集部件被关闭之前/之后被触发
───────────────────────────────────
BeforeInsertAfterInsert 在数据集部件进入插入状态之前/之后被触发
───────────────────────────────────
BeforeEditAfterEdit 在数据集部件被编辑之前/之后被触发
───────────────────────────────────
BeforePostAfterPost 在数据集部件投寄被修改的记录之前/之后被触发
───────────────────────────────────
BeforeCancelAfterCancel 在数据集部件取消前一步操作之前/之后被触发
───────────────────────────────────
BeforeDeleteAfterDelete 在数据集部件删除当前记录之前/之后被触发
───────────────────────────────────
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属性指定用于数据库表索引排序的字段名多个字段名之间用分号隔开例如对CustomerDB表中的客户记录按邮政编码ZipCode和客户号码CustNo排序时可以设定IndexFieldNames的值为
ZipCode ; CustNo
在IndexFieldNames属性中指定的字段必须存在于相应的数据库表中否则会导致错误IndexName和IndexFieldName是互斥的每次只能指定其中一个属性的值不能同时为两个属性都指定属性值
[] [] [] []