Delphi数据库编程


转自:http://blog.csai.cn/user1/9162/archives/2006/2955.html&http://www.k51.com.cn

1.数据集

   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数据库。



TTable

TTQuery

TStoredProc

桌面数据库应用

大部分的单表操作

简单的多表操作

不支持

SQL数据库应用

数据量小的SQL表格

大部分的操作

处理过程复杂的操作

应用程序控制权

BDE/IDAPI的控制权

异质查询

不可以

可以

不可以

可移植性

执行效率

好~优


4.数据源TDataSource

作为数据集与数据感知组件的桥梁。数据集只是与磁盘连接,本身并不能显示数据库中的信息。而数据感知组件可以提供可视化的界面,显示数据信息但不具备访问能力。TDataSource将两者结合,使得用户能对数据进行操作。

a)DataSet:指定获取数据的数据集名称。

b)Enable:切断与数据集的连接(为False值,布尔型)。

c)AutoEdit:是否将相连的数据集置于编辑状态。

事件:

a)OnDataChange:数据集的记录指针发生改变时触发。

b)OnStateChange:相连的数据集组件的状态发生改变时触发。

c)OnUpdateData:数据集组中当前记录将要被修改时触发。


你可能感兴趣的:(记录,Delphi,数据库编程)