转自:http://blog.csai.cn/user1/9162/archives/2006/2955.html&http://www.k51.com.cn1.数据集TDataSet该类的功能是对一个数据集的进行维护。 从面向对象讲,它定义了一些数据集的基本属性、方法和事件 基于此基础,派生出TQuery、TTable、TStoreproc等构件。 可以说,TDataSe定义了它们的共性。 1)TDataSet是抽象类,它只是定义了数据集的操作规范,必须由它的子类实现,这些操作规范才有意义。所以说,打开和关闭数据库都是针对数据集的子类。 2)字段访问: FiledCount指出该数据集有多少个字段;RecordCount指出数据集有多少条记录。 有以下三种方法访问当前记录的字段值: a)Fields[i]:访问当前记录的内容,按字段的顺序来访问。 b)FindField:按照字段的名字来访问。 c)FieldByName:按照字段的名字来访问。 3)数据导航 a)First:移到数据集的第一条记录 b)Last:移到数据集的最后一条记录 c)Prior:向前移动一条记录 d)Next:向后移动一条记录 e)MoveBy:按照指定的步长移动记录 4)数据编辑 a)Insert:在当前记录插入一条记录 b)Append:在数据集的尾部增加一条记录 c)Edit:将当前记录设置为编辑状态 d)Post:将当前记录的修改结果,写入数据集存盘 e)Cancel:取消当前记录的操作 f)Delete:删除当前记录 g)AppandRecord:在表的尾部加一条记录 h)InsertRecord:在当前记录处插入一条记录 i)SetFields:修改当前记录的值 j)ClearFields:将当前记录清空 5)数据查找 Locate:将当前当标定位在符合条件的记录上。 Lookup:返回相匹配记录的某几个字段值。 a)第一个参数是条件字段,第二个参数是条件值,Locate的第三个参数指出在查找时是否考虑大小写,是否部分匹配,Lookup的第三个字段是指出哪几个字段的值需要返回。 b)两种方法都可以多条件查找。 6)数据过滤 在前面提到的两种查找方法只能查到一条记录,需要下一条时,继续查找,而数据过滤Filter可以将符合条件的记录全部选择出来,形成数据集的子集。 7)数据集事件 8)状态属性 属性State描述这个抽象类数据集所处的状态。 a)dsInactive:不活动状态,这个数据集没有打开。 b)dsBrowse:指出目前处于浏览状态,这是缺少状态。 c)dsEdit:数据集处于被编辑状态。 d)dsInsert:处于插入状态,已经新增了一个记录。 e)dsSetKey:处于查找状态。 f)dsFilter:处于数据过滤状态。 g)dsClcFields:onCalcFields事件使用后的状态。 以上状态值只能在运行时获得,状态之间是相互转化的。 9)属性CanModify与Modify 10) 2.访问表格TTable 1)指定 DataBaseName:指定要访问的数据库。 TableName:指定要访问的数据库表名。 TableType:指定所访问数据表的类型。 2)打开关闭表 ReadOnly:该属性指定打开的表能否修改,为True时,禁止修改操作。 Open:打开数据表,处于浏览状态 Close:关闭已打开的数据表 Active:控制表的打开与关闭,对应值True与False Exclusive:该属性表明数据表是否被独占式打开。如果为,其它用户就不能再打开操作了。 3)建表、删表、清空表 FieldDefs:该属性定义数据集字段定义的信息。 CreateTable:动态创建表,但在调用此方法前,要先对以下属性赋值 DataBaseName/TableName/TableType/FieldDefs DeleteTable:用于删除一个存在的数据库表。调用此方法前,必先关闭数据库表。 4)索引 它表明当明显示的数据是按照什么排序的。 方法AddIndex:建立一个新的索引,须指定索引名称和索引字段。 方法DeleteIndex:删除索引。 属性DefaultIndex:指定打开的数据库,是否以默认的索引排序表中的数据。 属性IndexDefs:查找索引,之前须使用方法IndexDefs.Update更新一下索引数据。 属性IndexName:指定表内数据的显示顺序,可设置一个字段。 属性IndexFieldNames:指定表内数据的显示顺序,可设置多个索引字段,以分号隔开。 5)查找 除了数据集提供的Locate和LookUp SetKey……GotoKey:前者使用数据库处于查找条件输入状态,然后调用后者找到相应的记录。 SetKey……GotoNearest:字段值左边部分与查找条件相匹配,称为部分匹配。 6)范围 使用TTable可以显示所有数据,也可以显示一部分数据,可采用数据集的过滤,另一种是通过给索引字段设置起始条件和终结条件: a)SetRangeStart:开始范围。 b)SetRangeEnd:结束范围。 c)ApplyRange:开始执行数据筛选操作。 d)CancelRange:取消范围设置。 e)SetRange:可直接设置开始与结束范围。 f)EditRange:修改筛选范围。 3.查询TQuery 该构件是向数据库引擎BDE发送SQL语句,做为BDE和TDataSource构件之间的接口,它完全继承了TDataSet的属性、方法、事件之外,还有自己独有的属性与方法。 a)DataBaseName:指出数据库的名称 b)SQL:保存SQL语句的文本,调用Open或ExecSQL方法时,被执行。 c)RequestLive:指出SQL查询结果返回的视图是否可以修改。 d)使用Select子句的SQL都是用Open方法打开。 e) 7) TTable与TQuery两者的应用: a)TTable:用于桌面数据库,效率最好。 b)TQuery:使用SQL数据库。
4.数据源TDataSource 作为数据集与数据感知组件的桥梁。数据集只是与磁盘连接,本身并不能显示数据库中的信息。而数据感知组件可以提供可视化的界面,显示数据信息但不具备访问能力。TDataSource将两者结合,使得用户能对数据进行操作。 a)DataSet:指定获取数据的数据集名称。 b)Enable:切断与数据集的连接(为False值,布尔型)。 c)AutoEdit:是否将相连的数据集置于编辑状态。 事件: a)OnDataChange:数据集的记录指针发生改变时触发。 b)OnStateChange:相连的数据集组件的状态发生改变时触发。 c)OnUpdateData:数据集组中当前记录将要被修改时触发。 |