有关 TDataLink 的说明文件

来源:互联网 发布:能听金庸小说的软件 编辑:程序博客网 时间:2024/05/18 04:00

有关 TDataLink 的说明文件:

來源: http://www.51cto.com/art/200510/7252_1.htm


1.属性 (Property) 介绍

property Active: Boolean(只读)
当此 DataLink 连结至一个已开启的 DataSource 时会传回 True。当 Active 状态改变时会 触发ActiveChanged方法。

property ActiveRecord: Integer(可擦写)
用来设定或取得 DataLink 缓冲区中目前所指向的记录代码,代码的范围是 0 .. BufferCount - 1。使用它来设定记录代码时必须小心不要超过这个范围,否则可能导致不可预期的错误。

property BufferCount: Integer(可擦写)
DataLink 拥有一个资料缓冲区。而 BufferCount 属性即用来设定或取得缓冲区大小,缓冲区大小决定了一个dataset同时可以显视的资料记录笔数。对大部分的资料感知组件来说,BufferCount 的值是 1;但对 TDataGrid 来说,BufferCount 代表它的可视列数目。

property DataSet: TDataSet(只读)
传回此 DataLink 所连结的 DataSet。其实就是 DataSource.DataSet。

property DataSource: TDataSource(可擦写)
传回此DataLink所连结的DataSource。

property DataSourceFixed: Boolean(可擦写)
这个属性可用来防止 DataSource 属性被更改。如果此属性设为 True,当我们试着改变 DataSource 属性时会引发一个例外。

property Editing: Boolean(只读)
如果 DataLink 正处于编辑状态则传回 True。

property ReadOnly: Boolean(可擦写)
设定 DataLink 是否为只读状态。这个属性并不会影响所连结的 DataSet。在只读状态下这个 DataLink 无法进入编辑状态。

property RecordCount: Integer(只读)
传回DataSet的资料记录数目。

2.方法 (Method) 介绍

function Edit: Boolean;
让所连结的DataSet进入编辑状态。传回值: 成功传回 True ,失败传回 False

procedure UpdateRecord;
我们不直接呼叫这个方法,它是提供其它程序来呼叫的。这个方法只有设定一个旗帜然后呼叫 UpdateData 方法。

3.虚拟方法 ( Virtual Method ) 
要让 TDataLink 对象与组件沟通必须改写下列这些方法:


procedure ActiveChanged
当连结的 DataSource 开启状态改变时会呼叫此方法。使用 Active 属性可以得知目前是否为开启状态。


procedure CheckBrowseMode
数据库有任何改变之后都会先呼叫这个方法。

procedure DataSetChanged;
当下列任一事件发生时都会呼叫此方法:
移至DataSet的开头
移至DataSet的结尾
在DataSet中插入或新增资料
删除DataSet的资料
取消DataSet的编辑
更新记录
如果不想改写这个方法只要在其中呼叫:
RecordChanged(nil);

procedure DataSetScrolled(Distance: Integer)
每当目前记录变更时会呼叫此方法。Distance 参数代表缓冲区欲卷动的行数。(其值范围皆在 -1 .. 1 之间)。使用 ActiveRecord 属性可以取得缓冲区中目前所指向的记录。我们无法强制让 DataLink 的缓冲区卷动。


procedure FocusControl(Field: TFieldRef)
与TField.FocusControl方法相同。

procedure EditingChanged
当 DataLink 的编辑状态改变时会呼叫此方法。使用 Editing 属性可以得知DataLink 是否 正处于编辑状态。

procedure LayoutChanged
当 DataSet 的 Layout 改变时会呼叫此方法(例如新增一个column)。

procedure RecordChanged(Field: TField)
当下列任一事件发生时都会呼叫此方法:
目前记录进入编辑状态
目前记录内容更动

procedure UpdateData
在一笔记录被更新以前会呼叫此方法。你可以呼叫 Abort 程序来防止数据库更新。

 

12 如何得知一个 dataset 中有几笔记录?

TDateSet 的 RecNo 属性可以传回资料记录的数目,但很不幸地它只适用于 dBase 及 Paradox 的资料表格。若想得知目前资料记录的编号,可以从 TDataLink 类别衍生一个新的类别,然后进行下 列步骤:

改写 DataSetScrolled 方法以取得目前记录是否被卷动。
改写 DataSetChanged 方法来确认目前记录是否跳至最前面或最后面了。
接着你可以将这个新类别的对象连结到TDataSource对象上然后就可以随时得知目前的记录编号了。

原创粉丝点击