mirror of
https://gitlab.com/freepascal.org/fpc/source.git
synced 2025-08-17 02:59:13 +02:00
* Merging revisions 43143 from trunk:
------------------------------------------------------------------------ r43143 | michael | 2019-10-06 15:11:17 +0200 (Sun, 06 Oct 2019) | 1 line * Fix bug #0030379: detect circular refences ------------------------------------------------------------------------ git-svn-id: branches/fixes_3_2@43248 -
This commit is contained in:
parent
0fbf02d8e4
commit
e3a1461bd9
@ -559,10 +559,21 @@ begin
|
|||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
Function TDataSource.IsLinkedTo(ADataSet: TDataSet): Boolean;
|
Function TDataSource.IsLinkedTo(ADataset: TDataSet): Boolean;
|
||||||
|
|
||||||
|
var
|
||||||
|
DS: TDataSource;
|
||||||
|
|
||||||
begin
|
begin
|
||||||
Result:=False;
|
Result:=False;
|
||||||
|
Repeat
|
||||||
|
DS:=aDataset.GetDataSource;
|
||||||
|
Result:=(DS=Self);
|
||||||
|
if Assigned(DS) then
|
||||||
|
aDataSet := DS.DataSet
|
||||||
|
else
|
||||||
|
aDataSet := Nil;
|
||||||
|
Until Result or (aDataset=Nil)
|
||||||
end;
|
end;
|
||||||
|
|
||||||
|
|
||||||
@ -615,6 +626,8 @@ begin
|
|||||||
End;
|
End;
|
||||||
If ADataset<>Nil Then
|
If ADataset<>Nil Then
|
||||||
begin
|
begin
|
||||||
|
if IsLinkedTo(aDataset) then
|
||||||
|
DatabaseError(SErrCircularDataSourceReferenceNotAllowed,Self);
|
||||||
FDataSet:=ADataset;
|
FDataSet:=ADataset;
|
||||||
ADataset.RegisterDatasource(Self);
|
ADataset.RegisterDatasource(Self);
|
||||||
ProcessEvent(deUpdateState,0);
|
ProcessEvent(deUpdateState,0);
|
||||||
|
@ -1921,7 +1921,7 @@ type
|
|||||||
constructor Create(AOwner: TComponent); override;
|
constructor Create(AOwner: TComponent); override;
|
||||||
destructor Destroy; override;
|
destructor Destroy; override;
|
||||||
procedure Edit;
|
procedure Edit;
|
||||||
function IsLinkedTo(ADataSet: TDataSet): Boolean;
|
function IsLinkedTo(ADataset: TDataSet): Boolean;
|
||||||
property State: TDataSetState read FState;
|
property State: TDataSetState read FState;
|
||||||
published
|
published
|
||||||
property AutoEdit: Boolean read FAutoEdit write FAutoEdit default True;
|
property AutoEdit: Boolean read FAutoEdit write FAutoEdit default True;
|
||||||
|
Loading…
Reference in New Issue
Block a user