mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-04-16 00:59:23 +02:00
* Patch from Henrique Werlang to fix setting correct state when modifying data
This commit is contained in:
parent
5fef7a40d0
commit
5a942fb610
@ -2464,24 +2464,20 @@ end;
|
||||
procedure TDataSet.CalculateFields(var Buffer: TDataRecord);
|
||||
var
|
||||
i: Integer;
|
||||
OldState: TDatasetState;
|
||||
begin
|
||||
FCalcBuffer := Buffer;
|
||||
|
||||
if FState <> dsInternalCalc then
|
||||
begin
|
||||
OldState := FState;
|
||||
FState := dsCalcFields;
|
||||
try
|
||||
ClearCalcFields(FCalcBuffer);
|
||||
if not IsUniDirectional then
|
||||
for i := 0 to FFieldList.Count - 1 do
|
||||
if FFieldList[i].FieldKind = fkLookup then
|
||||
FFieldList[i].CalcLookupValue;
|
||||
finally
|
||||
DoOnCalcFields;
|
||||
FState := OldState;
|
||||
end;
|
||||
ClearCalcFields(FCalcBuffer);
|
||||
|
||||
if not IsUniDirectional then
|
||||
for i := 0 to FFieldList.Count - 1 do
|
||||
if FFieldList[i].FieldKind = fkLookup then
|
||||
FFieldList[i].CalcLookupValue;
|
||||
end;
|
||||
|
||||
DoOnCalcFields;
|
||||
end;
|
||||
|
||||
procedure TDataSet.CheckActive;
|
||||
@ -3142,10 +3138,20 @@ begin
|
||||
end;
|
||||
|
||||
procedure TDataSet.GetCalcFields(var Buffer: TDataRecord);
|
||||
|
||||
var
|
||||
i: Integer;
|
||||
OldState: TDatasetState;
|
||||
begin
|
||||
if (FCalcFieldsCount > 0) or FInternalCalcFields then
|
||||
CalculateFields(Buffer);
|
||||
begin
|
||||
OldState := FState;
|
||||
FState := dsCalcFields;
|
||||
try
|
||||
CalculateFields(Buffer);
|
||||
finally
|
||||
FState := OldState;
|
||||
end;
|
||||
end;
|
||||
end;
|
||||
|
||||
function TDataSet.GetCanModify: Boolean;
|
||||
|
Loading…
Reference in New Issue
Block a user