* Change OnApplyUpdates to be more future proof.

This commit is contained in:
michael 2018-07-19 07:07:35 +00:00
parent 00300a800d
commit 53a3015923
2 changed files with 14 additions and 8 deletions
demo/fcldb
packages/fcl-db

View File

@ -46,7 +46,7 @@ Type
function DoEditRecord(aEvent: TJSMouseEvent): boolean;
procedure DoGetURL(Sender: TComponent; aRequest: TDataRequest; Var aURL: String);
procedure DoLoadFail(DataSet: TDataSet; ID: Integer; const ErrorMsg: String);
procedure DSAfterApplyUpdates(DataSet: TDataSet; Updates: TResolveInfoArray);
procedure DSAfterApplyUpdates(DataSet: TDataSet; Updates: TResolveResults);
procedure DSOpen(DataSet: TDataSet);
procedure ResetButtons(Sender: TDataset);
function SelectRecord(aEvent: TJSMouseEvent): boolean;
@ -135,7 +135,7 @@ begin
PanelContent.append(N);
end;
procedure TForm.DSAfterApplyUpdates(DataSet: TDataSet; Updates : TResolveInfoArray);
procedure TForm.DSAfterApplyUpdates(DataSet: TDataSet; Updates : TResolveResults);
begin
Window.Alert('Updates applied on server!');
EName.value:='';

View File

@ -1041,8 +1041,13 @@ type
end;
TResolveInfoArray = Array of TResolveInfo;
// Record so we can extend later on
TResolveResults = record
Records : TResolveInfoArray;
end;
TOnRecordResolveEvent = Procedure (Sender : TDataset; info : TResolveInfo) of object;
TApplyUpdatesEvent = Procedure (Sender : TDataset; info : TResolveInfoArray) of object;
TApplyUpdatesEvent = Procedure (Sender : TDataset; info : TResolveResults) of object;
{------------------------------------------------------------------------------}
@ -1192,7 +1197,7 @@ type
procedure DoBeforeLoad; virtual;
procedure DoAfterLoad; virtual;
procedure DoBeforeApplyUpdates; virtual;
procedure DoAfterApplyUpdates(const ResolveInfo: TResolveInfoArray); virtual;
procedure DoAfterApplyUpdates(const ResolveInfo: TResolveResults); virtual;
function FieldByNumber(FieldNo: Longint): TField;
function FindRecord(Restart{%H-}, GoForward{%H-}: Boolean): Boolean; virtual;
function GetBookmarkStr: TBookmarkStr; virtual;
@ -2733,7 +2738,7 @@ begin
FBeforeApplyUpdates(Self);
end;
procedure TDataSet.DoAfterApplyUpdates(Const ResolveInfo : TResolveInfoArray);
procedure TDataSet.DoAfterApplyUpdates(Const ResolveInfo : TResolveResults);
begin
If Assigned(FAfterApplyUpdates) then
@ -2915,6 +2920,7 @@ Var
RUD : TRecordUpdateDescriptor;
doRemove : Boolean;
Resolved : TResolveInfoArray;
Results : TResolveResults;
begin
if Assigned(FBatchList) and (aBatch.Dataset=Self) then
@ -2924,11 +2930,11 @@ begin
if (BI=-1) then
Exit;
FBatchList.Delete(Bi);
SetLength(Resolved, aBatch.List.Count);
SetLength(Results.Records, aBatch.List.Count);
For RI:=0 to aBatch.List.Count-1 do
begin
RUD:=aBatch.List[RI];
Resolved[RI]:=RecordUpdateDescriptorToResolveInfo(RUD);
Results.Records[RI]:=RecordUpdateDescriptorToResolveInfo(RUD);
aBatch.List.Items[RI]:=Nil;
Idx:=IndexInChangeList(RUD.Bookmark);
if (Idx<>-1) then
@ -2950,7 +2956,7 @@ begin
end;
if (FBatchList.Count=0) then
FreeAndNil(FBatchList);
DoAfterApplyUpdates(Resolved);
DoAfterApplyUpdates(Results);
end;
procedure TDataSet.DoApplyUpdates;