高手请进..关於DBGrid 与 Table CacheUpdate的问题(200分)

  • 主题发起人 主题发起人 GaryLou
  • 开始时间 开始时间
G

GaryLou

Unregistered / Unconfirmed
GUEST, unregistred user!

如果 Table 是用CacheUpdate , DBGrid.DataSet = Table, 当Save
到磁碟时,会整个Cache储存,但如有多个Record 曾修改,能不能知道曾经
有哪个Record 有过改动呢? How to Know it?望有Source code,多谢
 
改变Table的UpdateRecordTypes属性,可仅显示你想显示的纪录。
如,要Undelete纪录时,可将UpdateRecordTypes属性设为rtDeleted,
这样显示的就是刚删除的一些纪录,逐个RevertRecord即可。
TTable1.UpdateRecordTypes.Clear;
TTable1.UpdateRecordTypes << rtDeleted;
TTable1.First;
while not DataSet.Eof do
begin
TTable1.RevertRecord;
TTable1.Next;
end;
(); // undelete the
 
试试这个:

TDataSet.Modified 数据集中当前记录是否被修改

Indicates whether the current record is modified.

property Modified: Boolean;

Description

Check Modified to determine if the current record is modified. If Modified is True, the current record is modified. If False, the current record is not modified.

Note: In general, an application need not check the status of Modified. Properties, events, and methods of TDataSet and its descendants that modify records generally check this status automatically and take appropriate actions based on its value.
 
slash :
Use UpdateRecordTypes must use BDEDataSet , How to use it.

popeye :
use TDataSet.Modified effect whole table, I must know the current
record status(isModify).
 
TTable是从TBDEDataSet继承的,自然可使用UpdateRecordTypes属性。
sorry, “<<”是CB的写法,Delphi因该这样写吧:(
UpdateRecordTypes := [rtModified, rtInserted, rtUnmodified];
 
试试这个,在DataSource的事件OnDataChange中用BookmarkList来记录。
 
TTable1.UpdateRecordTypes.Clear;
TTable1.UpdateRecordTypes .rtmodified;
TTable1.First;
while not DataSet.Eof do 很浪费时间的
begin
TTable1.RevertRecord;
TTable1.Next;
end;
:)改一下适合他的要求
 
多人接受答案了。
 
后退
顶部