mirror of
https://gitlab.com/freepascal.org/fpc/pas2js.git
synced 2025-08-18 23:49:02 +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);
|
procedure TDataSet.CalculateFields(var Buffer: TDataRecord);
|
||||||
var
|
var
|
||||||
i: Integer;
|
i: Integer;
|
||||||
OldState: TDatasetState;
|
|
||||||
begin
|
begin
|
||||||
FCalcBuffer := Buffer;
|
FCalcBuffer := Buffer;
|
||||||
|
|
||||||
if FState <> dsInternalCalc then
|
if FState <> dsInternalCalc then
|
||||||
begin
|
begin
|
||||||
OldState := FState;
|
ClearCalcFields(FCalcBuffer);
|
||||||
FState := dsCalcFields;
|
|
||||||
try
|
if not IsUniDirectional then
|
||||||
ClearCalcFields(FCalcBuffer);
|
for i := 0 to FFieldList.Count - 1 do
|
||||||
if not IsUniDirectional then
|
if FFieldList[i].FieldKind = fkLookup then
|
||||||
for i := 0 to FFieldList.Count - 1 do
|
FFieldList[i].CalcLookupValue;
|
||||||
if FFieldList[i].FieldKind = fkLookup then
|
|
||||||
FFieldList[i].CalcLookupValue;
|
|
||||||
finally
|
|
||||||
DoOnCalcFields;
|
|
||||||
FState := OldState;
|
|
||||||
end;
|
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
DoOnCalcFields;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDataSet.CheckActive;
|
procedure TDataSet.CheckActive;
|
||||||
@ -3142,10 +3138,20 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
procedure TDataSet.GetCalcFields(var Buffer: TDataRecord);
|
procedure TDataSet.GetCalcFields(var Buffer: TDataRecord);
|
||||||
|
var
|
||||||
|
i: Integer;
|
||||||
|
OldState: TDatasetState;
|
||||||
begin
|
begin
|
||||||
if (FCalcFieldsCount > 0) or FInternalCalcFields then
|
if (FCalcFieldsCount > 0) or FInternalCalcFields then
|
||||||
CalculateFields(Buffer);
|
begin
|
||||||
|
OldState := FState;
|
||||||
|
FState := dsCalcFields;
|
||||||
|
try
|
||||||
|
CalculateFields(Buffer);
|
||||||
|
finally
|
||||||
|
FState := OldState;
|
||||||
|
end;
|
||||||
|
end;
|
||||||
end;
|
end;
|
||||||
|
|
||||||
function TDataSet.GetCanModify: Boolean;
|
function TDataSet.GetCanModify: Boolean;
|
||||||
|
Loading…
Reference in New Issue
Block a user