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. JAVA_SE基础——14.循环结构语句

    建议有些基础的同学阅读,0基础可能会有些困难(最好看正文配合基础课本的例子) 所谓循环语句主要就是在满足条件的情况下反复执行某一个操作.Java提供了3种常用的循环语句,分别为for循环语句.whil ...

  2. JAVA_SE基础——5.第一个Java程序HelloWorld&注释的应用

    配置完JDK&环境变量后,我们就可以开始写程序了,那么程序怎么写呢,用什么工具呢,我建议 为了方便学习,我们最好在一个磁盘下建立一个专门的文件来写java程序,比如就在D盘下建立一个名为&qu ...

  3. 九、Python发送QQ邮件(SMTP)

    看了廖雪峰老师的教程: 一封电子邮件的旅程就是 发件人 -> MUA -> MTA -> MTA -> 若干个MTA -> MDA <- MUA <- 收件人 ...

  4. java的<<左移,>>右移,>>>无符号右移

    >>右移 右移,道在二进制中,假设用一个32位的Int表示一个64,那么高位就都是0,所以当我们把整个二进制数右移,如0100000 >> 2 = 0001000,可以看到右移 ...

  5. Python-模块使用-Day6

    Python 之路 Day6 - 常用模块学习 本节大纲: 模块介绍time &datetime模块randomossysshutiljson & picleshelvexml处理ya ...

  6. 新概念英语(1-113)Small Change

    Lesson 113 Small Change 零钱 Listen to the tape then answer this question. Who has got some change?听录音 ...

  7. TCP/IP和HTTP协议代理

    TCP/IP协议族 TCP/IP(传输控制协议/网际协议)是用于计算机通信的一个协议族. TCP/IP协议族包括诸如Internet协议(IP).地址解析协议(ARP).互联网控制信息协议(ICMP) ...

  8. windows计划任务

    前段时间写了一个小工具,实现两个数据库的数据同步. 需求:要求每天的某个时间自动同步数据 功能写好之后,发现了windows一个自带的功能不错,可以实现我的需要,不用写定时器触发了 控制面板-> ...

  9. CTF中常见密码题解密网站总结

    0x00.综合 网站中包含大多编码的解码. http://web2hack.org/xssee/ https://www.sojson.com/ http://web.chacuo.net/ 0x01 ...

  10. AES(高级加密)

    AES(高级加密) #3.6安装 pip3 install pycryptodome #mac pip3 install pycrypto a. 事例: ####################### ...