1.基本情况介绍; clientdataset内存表,他的data属性存放的是数据, delta 增量记录的是日志, 就相当于数据库的 savepoint保存点;每当clientdataset的数据有变化时(onbeforeedit, onafteredit),savepoint都会变化。如果我们想取消一段时间的操作,我们可以先记录下这个savepoint,然后修改,如果想取消,直接让这个savepoint = 以前的那个点即可。
try this
var
BaseLine:Integer;
begin
with ClientDataSet1 do
begin
BaseLine:=SavePoint;
Insert;
FieldByName('Name').AsString:= Edit1.Text;
FieldByName('Weight').AsInteger:= StrToInt(Edit2.Text);
if 提交 then
MergeChangeLog
else //取消
SavePoint:=BaseLine;
end;
end;
2. clientdaset可以不连接数据库直接使用,如果设置了clientdataset的filename属性,那么在数据集打开或者关闭的时候,都会将数据集里的数据保存到对应的文件中,这个过程是会合并日志的。也就是说你编辑到什么状态,然后下次打开还是什么状态。
3.mergechangelog; 就是将 delta里面的操作日志跟 data合并,
4.emptydataset,清空数据集。
5.三层服务的构造方法,在客户端放上clie