<b>第十五章 数据拜候部件的利用及编程(二)</b>[Delphi编程]
本文“<b>第十五章 数据拜候部件的利用及编程(二)</b>[Delphi编程]”是由七道奇为您精心收集,来源于网络转载,文章版权归文章作者所有,本站不对其观点以及内容做任何评价,请读者自行判断,以下是其具体内容:
15.3.6 数据集部件的事件
数据集部件TTable或TQuery具有很多的事件.为这些事件编写呼应的程序代码可以举行有效性考证、计算可计算字段的值、确认对数据库表的多种操作等等.这些事件及其描写如表15.4所示.
表15.4 数据集部件常用的事件
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
事 件 描 述
───────────────────────────────────
BeforeOpen,Afteropen 在数据集部件被翻开之前/之后被触发
───────────────────────────────────
BeforeClose,Afterclose 在数据集部件被关闭之前/之后被触发
───────────────────────────────────
BeforeInsert,AfterInsert 在数据集部件进入插入状况之前/之后被触发
───────────────────────────────────
BeforeEdit,AfterEdit 在数据集部件被编辑之前/之后被触发
───────────────────────────────────
BeforePost,AfterPost 在数据集部件投寄被改正的记录之前/之后被触发
───────────────────────────────────
BeforeCancel,AfterCancel 在数据集部件撤消前一步操作之前/之后被触发
───────────────────────────────────
BeforeDelete,AfterDelete 在数据集部件删除当前记录之前/之后被触发
───────────────────────────────────
OnNewRecord 当成立一条新记录时被触发
───────────────────────────────────
OnCalcFields 当为表中的计算字段计算字段值时被触发
━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━━
15.4 TTable部件及利用
在前一节里我们介绍了数据集部件TTable 和TQuery 的共同的一些属性和办法.TTable部件是Delphi数据库编程中要常常利用的最重要的部件之一,它是数据库利用程序拜候数据库时必须利用的数据集部件之一,在这一节里,我们重点介绍TTable部件特有的属性和办法,TTable部件全部的属性、办法和事件都可以在联机帮忙中查到.
15.4.1 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是互斥的,每次只能指定此中一个属性的值,不能同时为两个属性都指定属性值.
Exclusive属性:
该属性是一个布尔型属性,它标明能否以同享方法翻开数据库表,假如Exclusive的值为True,当翻开一个数据库表时,其他用户就不能拜候该表了,若Exclusive的值为False,将以同享方法翻开一个数据库表.明显不能将其他用户正在拜候的表以互斥方法翻开(设定Exclusive的值为True).关于SQL数据库服务器上的数据库表,当以互斥方法被一个用户翻开时,其他用户可以读取该表中的数据,但不能改正表中的数据,当然有些数据库服务器不支持这种方法,这要具体参看有关的数据库服务器的文档.
ReadOnly属性和CanModify属性:
这两个属性都是布尔型属性,ReadOnly属性决意用户能否可以对表中的数据举行读写.ReadOnly为True 时,用户只能读取表中的数据,ReadOnly为False时,用户可以读写表中的数据(假定数据库已受权用户可以读写此中的数据库表).CanModify属性是一个只读属性,用户不可以改正其属性值,它反映了用户对数据库表拥有的实际特权,当ReadOnly为True时CanModify将自动地被置为False,当ReadOnly为False时,假如数据库答应用户对表举行读写时,CanModify为True,不然CanModify为False.当CanModify为False时,数据库表是只读的,但不能将其置成编辑状况或插入状况;当CanModify属性为True时,固然数据库表对应的数据集部件可以置成编辑和插入状况,但是这并不意味着用户可以插入和改正表中的数据,因为这还要遭到其他因素的限制,如用户对SQL数据库服务器的拜候权限等的限制.
TTable部件还有其他一些属性请参看联机帮忙
以上是“<b>第十五章 数据拜候部件的利用及编程(二)</b>[Delphi编程]”的内容,如果你对以上该文章内容感兴趣,你可以看看七道奇为您推荐以下文章:
本文地址: | 与您的QQ/BBS好友分享! |