D
dreamisx
Unregistered / Unconfirmed
GUEST, unregistred user!
我正在试着写一个三层架构的东东(只是练习一下),现在实现客户端时遇到一个问题:
1、用 ClientDataSet.Append;
新增一条记录,用户输入一些信息,然后点保存按钮;
2、保存时用以下代码:
with ClientDataSetdo
begin
CheckBrowseMode();
//确保已修改的数据真正能保存
if CheckRecordValid() then
//如果数据检查有误,则不保存 2005.2.3
begin
if ChangeCount >
0 then
begin
BeforeSaveRecord();
//保存前做一些事
ApplyUpdates(-1);
//提交
AfterSaveRecord();
//保存完做一些事
end;
//...
end;
end;
诸位大侠请注意了,对于不是新增的记录(进行修改的记录)CheckBrowseMode执行后,当前记录位置不变,但当是新增记录时,执行CheckBrowseMode之后,ClientDataSet就跑到表尾去了,且新增的记录无法用Locate等方法定位!也就是说,其后执行CheckRecordValid时已无法得到正确的结果!非得ApplyUpdates()后才能定位到原先新增的记录处!
请问,有什么办法可以处理这种情况,即在CheckBrowseMode后可定位到新增记录处?
1、用 ClientDataSet.Append;
新增一条记录,用户输入一些信息,然后点保存按钮;
2、保存时用以下代码:
with ClientDataSetdo
begin
CheckBrowseMode();
//确保已修改的数据真正能保存
if CheckRecordValid() then
//如果数据检查有误,则不保存 2005.2.3
begin
if ChangeCount >
0 then
begin
BeforeSaveRecord();
//保存前做一些事
ApplyUpdates(-1);
//提交
AfterSaveRecord();
//保存完做一些事
end;
//...
end;
end;
诸位大侠请注意了,对于不是新增的记录(进行修改的记录)CheckBrowseMode执行后,当前记录位置不变,但当是新增记录时,执行CheckBrowseMode之后,ClientDataSet就跑到表尾去了,且新增的记录无法用Locate等方法定位!也就是说,其后执行CheckRecordValid时已无法得到正确的结果!非得ApplyUpdates()后才能定位到原先新增的记录处!
请问,有什么办法可以处理这种情况,即在CheckBrowseMode后可定位到新增记录处?