TDataSet类由TBDEDataSet(BDE组件)、TCustomADODataSet(ADO组件)、TIBCustomDataSet(InterBase组件)、TCustomSQLDataSet(dbExpress组件)和TCustomClientDataSet子类组成。

下面介绍DataSet类中比较重要的属性(可能会有取舍,等到真正做项目用到的时候在进行补充)

1.Active:判断数据库是否已打开;

2. Bof:判断数据集的第一条记录是否激活(且在以下状态下为true:1.打开一个数据集;2.用First方法访问数据集;3.使用Prior方法且该方法已失效;4.设置一个空范围或数据集的setRange方法);

3. BookMark:在DataSet中设置一个书签;

4. Buffers:在内部缓存中提供索引来存取记录的缓冲区;

5. CurrentRecord:在记录缓存区的内部缓存中的当前记录的索引;

6. DataSource:表示其他提供值的数据集的数据源,其默认值为nil;

7. Eof:判断数据集是否指向最后一条记录(在以下状态下为true:1.打开一个空的数据集;2.调用Last方法;3.调用next方法但当前记录已经是最后一条记录;4.对空范围或记录调用SetRange方法);

8. Found:移动到一个不同的记录上是否成功;

9. IsUniDirectional:判断数据集是否为TCustomSQLDataSet的子集;

10. Modifid:活动的记录是否可以修改;

11. RecNo:返回在一个数据集中已活动的记录条数;

12. RecordCount:与数据集关联的记录条数;

13. RecordSize:表示需要内部缓冲区的大小(在TDataSet中,RecordSize为0);

14.State:设定当前数据集的操作模式的状态(打开一个数据集,状态由dslnactive变成dsBrowse;编辑状态(dsEdit);插入状态(dsInsert);调用SetKey或SetRange(dsSetKey);Posting或canceling(由当前状态变为dsBrowse);Closing数据集(由当前状态变为dslnactive));

15.FieldValue:在数据集的活动记录中提供对所有字段的值的访问方法。(重要)

下面介绍TDataSet类中比较重要的方法:

1.ActiveBuffer:返回一个指向活动记录缓存的指针。(经常与bookmark配合来记录活动记录缓存中bookmark的信息)

2.Append:添加一个新的、空的记录到这个数据集的末尾。(重要)

2.1 AppendRecord:添加一个新的、空的记录到数据集的末尾并自动post。例如

Customer.AppendRecord([CustNoEdit.Text,CoNameEdit.Text, AddrEdit.Text, Null, Null, Null, Null, Null, Null, DiscountEdit.Text]);

3.FieldByName:根据字段的名称来访问(只用用来访问已存在的字段,否则会报EDatabaseError错误)。(重要)

4.Post:将已修改过的记录写入到数据库或日志中[ADO组件直接将数据提交到数据库服务器]。(重要)

procedure TForm1.Button1Click(Sender: TObject);

begin
SampleTable.Append; //添加一个新的记录
SampleTable.FieldValues['ALPHANUMERIC'] := Edit1.text; //设定两个字段并赋值
SampleTable.FieldValues['INTEGER'] := StrToInt(Edit2.text);
SampleTable.Post; //提交记录到数据库或日志
end;

5.Cancel:如果活动的记录没有post,则可以取消活动的记录。但如果记录的状态不为(dsEdit or dsInsert),则方法无效。(重要)

6.ClearFields:清空活动记录的所有字段的值。

7.Close:关闭一个数据集。(重要)

8.Create:创建一个TDataSet对象。(重要)

9.Delete:删除一个活动记录并指针移动到DataSet对象的下一个记录。(重要)

10.Destory:销毁DataSet对象(通常情况下DataSet有系统自动回收)。(重要)

11.1 DisableControls:利用数据控件显示与一个DataSet对象关联的禁用数据。

11.2 EnableControls:与DisableControl刚好相反。

12.Edit:DataSet对象进入编辑状态。(重要)

13.FindField:搜索指定DataSet的字段。(如果未找到,则返回nil)(重要)例如:

with Table1 do
begin
FindField('CustNo').AsString := '1234';
Fields[0].AsString := '1234';
end;

14.1 FindFirst:是否指定DataSet对象的第一条记录,返回bool类型。(重要)

14.2 FindLast:与FindFirst方法刚好相反。(重要)

14.3 FindNext:判断指针是否定位到DataSet对象的下一个数据记录,返回bool类型。(重要)
14.4 FindPior:与FindNext方法刚好相反。(重要)
以上方法如返回false,则表示活动记录为成功修改;返回true,则表示修改成功。

15. First:移动到DataSet的第一条记录。调用该方法的目的是为了让DataSet的第一条记录设置为active。(重要)

16. 1 BookMarkVid:指定书签的有效性。

16.2 CompareBookMarks:用虚方法来比较两个书签。(如果BookMark1>BookMark2,则CompareBookMarks(BookMark1,BookMark2)>0)

16.3 GetBookMark:为数据集的活动记录分配标签。(由TBookMark得到)

16.4 SetBookMark:为数据集的活动记录设置标签。

16.5 GotoBookMark:定位到数据集活动记录被书签标记的位置上。(重要)

16.6 FreeBookMark:释放分配给指定标签的内存。(重要)例如:

procedure TForm1.CopyDataClick(Sender: TObject);
var
SavePlace: TBookmark;
PrevValue: Variant;
begin
with MyData do
begin
{ get a bookmark so that we can return to the same record }
SavePlace := GetBookmark; //得到一个标签
try
{ move to prior record}
FindPrior;
{ get the value }
PrevValue := Fields[0].Value;
{Move back to the bookmark this may not be the next record anymore if something else is changing the dataset asynchronously }
GotoBookmark(SavePlace);
{ Set the value }
Fields[0].Value := PrevValue;
{ Free the bookmark }
finally
FreeBookmark(SavePlace);
end;
end;
end;

17. GetCurrentRecord:返回在缓存中的记录。(如返回false,则表示缓存区填充失败;如返回true,则缓存成功)(重要)
18. GetDetailDataSets:将不是嵌套的数据集填充到一个数据集列表中。

19. GetFiledData:在缓存中检索当前字段的值。(返回bool值,如返回false,则表示值未被成功提取)

20.1  Insert:向数据集插入一个新的、空的记录。(重要)

20.2 InsertRecord:向数据集插入一个新的、空的记录并自动post。(重要)

21. IsEmpty:判断数据集是否为空。(重要)

22. IsLinkedTo:判断数据集是否通过DataSource连接。(重要)

23. Last:将指针移动到数据集的最后一条记录。(重要)

24. MoveBy:从一个活动记录移动到另一个记录。(重要)

25. Next:移动到下一条记录。(重要)

procedure TForm1.Button1Click(Sender: TObject);
var
i: Integer;
begin
with ProgressBar1 do
begin
Min := 0;
Max := Customers.RecordCount;
Customers.First;
for i := Min to Max do
begin
Position := i;
Customers.Next;
end;
end;
end;

26. Open:打开数据集。(重要)

Delphi7数据库编程之TDataSet(转)的更多相关文章

  1. java数据库编程之DAO模式

    第八章:DAO模式 8.1:JDBC封装 为了提高代码的维护性和扩展性,我们使用JDBC进行封装数据, 先定义统一的API,将操作数据的代码抽象到接口中,业务逻辑代码只需要调用这些接口的实现类的对象, ...

  2. [转] iOS多线程编程之Grand Central Dispatch(GCD)介绍和使用

    介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其他的对称多处理系统的系统.这建立在任务并行执行的线程池模式的基础上的.它首 ...

  3. iOS 多线程编程之Grand Central Dispatch(GCD)

    介绍: Grand Central Dispatch 简称(GCD)是苹果公司开发的技术,以优化的应用程序支持多核心处理器和其它的对称多处理系统的系统.这建立在任务并行运行的线程池模式的基础上的. 它 ...

  4. Python Flask高级编程之从0到1开发《鱼书》精品项目 ☝☝☝

    Python Flask高级编程之从0到1开发<鱼书>精品项目 ☝☝☝ 一 .安装环境我们使用 flask web框架,并用 sqlalchemy来做数据库映射,并使用 migrate做数 ...

  5. Python Flask高级编程之从0到1开发《鱼书》精品项目 ✍✍✍

    Python Flask高级编程之从0到1开发<鱼书>精品项目  一 .安装环境我们使用 flask web框架,并用 sqlalchemy来做数据库映射,并使用 migrate做数据迁移 ...

  6. 并发编程之J.U.C的第二篇

    并发编程之J.U.C的第二篇 3.2 StampedLock 4. Semaphore Semaphore原理 5. CountdownLatch 6. CyclicBarrier 7.线程安全集合类 ...

  7. 并发编程之J.U.C的第一篇

    并发编程之J.U.C AQS 原理 ReentrantLock 原理 1. 非公平锁实现原理 2)可重入原理 3. 可打断原理 5) 条件变量实现原理 3. 读写锁 3.1 ReentrantRead ...

  8. Java并发编程之CAS第一篇-什么是CAS

    Java并发编程之CAS第一篇-什么是CAS 通过前面几篇的学习,我们对并发编程两个高频知识点了解了其中的一个—volatitl.从这一篇文章开始,我们将要学习另一个知识点—CAS.本篇是<凯哥 ...

  9. 网络编程之socket

    网络编程之socket socket:在网络编程中的一个基本组件,也称套接字. 一个套接字就是socket模块中的socket类的一个实例. 套接字包括两个: 服务器套接字和客户机套接字 套接字的实例 ...

随机推荐

  1. STM32F4系列单片机上使用CUBE配置MBEDTLS实现pem格式公钥导入

    |版权声明:本文为博主原创文章,未经博主允许不得转载. 最近尝试在STM32F4下用MBEDTLS实现了公钥导入(我使用的是ECC加密),整个过程使用起来比较简单. 首先,STM32F4系列CUBE里 ...

  2. EasyUi中对话框。

    html页面代码: <head id="Head1" runat="server"> <meta http-equiv="Conte ...

  3. Python之旅.第三章.函数3.29

    一.无参装饰器 1 开放封闭原则 软件一旦上线后,就应该遵循开放封闭原则,即对修改源代码是封闭的,对功能的扩展是开放的 也就是说我们必须找到一种解决方案: 能够在不修改一个功能源代码以及调用方式的前提 ...

  4. mysql数据库基本操作

    下载地址 http://www.mysql.com/downloads/mysql/ 端口号:3306 用户名:root 密码:自定义 连接到MySQL服务器 >mysql -uroot -pr ...

  5. Struts2 配置文件小结

    每次写的博文都被管理员都被移出首页,好气!还希望有哪位大神可以指点迷津-- struts2 配置文件的 result 节点 result 节点是 action 节点的子节点,他代表着 action 方 ...

  6. c++中模板是什么?为什么要定义模板?

    一.c++中模板是什么? 首先: int Max(int x, int y) { return x > y ? x : y; } float Max(float a,float b) { ret ...

  7. shiro的sessionManager类继承结构及主要类方法

    shiro1.3.2 sessionManage的作用是对会话进行管理. 1.类结构 2.主要接口介绍 SessionManager: 包括两个方法,一个是新建会话,一个是通过key获取会话 Vali ...

  8. 哪些异常是RuntimeException?Sql异常属于RuntimeException吗?Spring下SQL异常事务回滚

    一,为什么框架中根本没有对Exception的一般子类进行回滚配置,异常发生时,事务都进行了回滚 ,说好的只会对RuntimeException(Unchecked 非受检异常)回滚呢? 此时,我们就 ...

  9. Maven的作用是什么

    现在我们开发的项目基本上都是maven项目,maven项目也是一个项目,类似于javaProject,javaWebProject,就是多了些功能. 那就说说究竟多了什么功能呢. 1 . 帮你下载ja ...

  10. python Mysql 库表

    Mysql 库表    创建 学生信息库表  学生成绩 库表