X
xhyph
Unregistered / Unconfirmed
GUEST, unregistred user!
我在服务端的DataSetProvider的BeforeUpdateRecord事件添加下列代码
procedure TBook.m_DataSetProviderBeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet;
DeltaDS: TClientDataSet;
UpdateKind: TUpdateKind;
var Applied: Boolean);
var
i:Integer;
begin
case UpdateKind of
ukModify :SDIAppForm.m_Memo_1.Lines.Add('ukModify');
ukDelete :SDIAppForm.m_Memo_1.Lines.Add('ukDelete');
ukInsert :SDIAppForm.m_Memo_1.Lines.Add('ukInsert');
end;
for i:=0 to DeltaDS.RecordCount-1do
begin
if( pfInUpdate in DeltaDS.FieldByName('书名').ProviderFlags) then
SDIAppForm.m_Memo_1.Lines.Add(IntToStr(i)+':'+'pfInUpdate');
end;
SDIAppForm.m_ClientDataSet_DeltaDS.Data:=DeltaDS.Data;
SDIAppForm.m_Memo_1.Lines.Add(IntToStr(i)+':'+'Data');
我删除了一条记录,修改了一条记录
在m_Memo_1里
ukDelete
0fInUpdate
1fInUpdate
2fInUpdate
3ata
ukModify
0fInUpdate
1fInUpdate
2fInUpdate
3ata
看上面的顺序似乎MIDSA是记录逐条更新的
但是我不懂的是
SDIAppForm.m_ClientDataSet_DeltaDS.Data:=DeltaDS.Data;
既然是逐条更新的,那么m_ClientDataSet_DeltaDS.Data应该被赋予两次
也就是说m_ClientDataSet_DeltaDS.Data应该只保留最后那条我更新的记录
可是事实上它把我所有的更新过的记录都保留着
这怎么解释?
procedure TBook.m_DataSetProviderBeforeUpdateRecord(Sender: TObject;
SourceDS: TDataSet;
DeltaDS: TClientDataSet;
UpdateKind: TUpdateKind;
var Applied: Boolean);
var
i:Integer;
begin
case UpdateKind of
ukModify :SDIAppForm.m_Memo_1.Lines.Add('ukModify');
ukDelete :SDIAppForm.m_Memo_1.Lines.Add('ukDelete');
ukInsert :SDIAppForm.m_Memo_1.Lines.Add('ukInsert');
end;
for i:=0 to DeltaDS.RecordCount-1do
begin
if( pfInUpdate in DeltaDS.FieldByName('书名').ProviderFlags) then
SDIAppForm.m_Memo_1.Lines.Add(IntToStr(i)+':'+'pfInUpdate');
end;
SDIAppForm.m_ClientDataSet_DeltaDS.Data:=DeltaDS.Data;
SDIAppForm.m_Memo_1.Lines.Add(IntToStr(i)+':'+'Data');
我删除了一条记录,修改了一条记录
在m_Memo_1里
ukDelete
0fInUpdate
1fInUpdate
2fInUpdate
3ata
ukModify
0fInUpdate
1fInUpdate
2fInUpdate
3ata
看上面的顺序似乎MIDSA是记录逐条更新的
但是我不懂的是
SDIAppForm.m_ClientDataSet_DeltaDS.Data:=DeltaDS.Data;
既然是逐条更新的,那么m_ClientDataSet_DeltaDS.Data应该被赋予两次
也就是说m_ClientDataSet_DeltaDS.Data应该只保留最后那条我更新的记录
可是事实上它把我所有的更新过的记录都保留着
这怎么解释?