Допустим, у меня есть ссылка ClientDataSet1 с TDataSetProvider для доступа к базе данных для данных, и я открыл ClientDataSet1, готовый для редактирования, и внес некоторые изменения, поэтому в конце у меня есть некоторая дельта.Дельта, назначаемая TPacketDataSet, для простого решения, прежде чем я вызову ClientDataSet1.ApplyUpdates.Есть ли в любом случае узнать, что текущая запись TPacketDataSet на самом деле указывает на то, какая запись в TClientDataSet без вызова TDataSet.Locate, так как я считаю, TDataSet.Locate может снизить производительность.Я хотел бы найти запись TClientDataSet при обходе TPacketDataSet для некоторых целей редактирования.У меня есть некоторые причины не делать этого в TDataSetProvider.OnUpdateData из-за некоторых проблем, с которыми я сталкивался ранее здесь .
procedure Test;
var P: TPacketDataSet;
begin
P := TPacketDataSet.Create(nil);
try
P.Data := ClientDataSet1.Delta;
P.First;
while not P.Eof do begin
if P.UpdateStatus = usUnmodified then begin
P.InitAltRecBuffers(True);
//How to know the current record in P point to which record in ClientDataSet1
end;
P.Next;
end;
finally
P.Free;
end;
end;
Спасибо!