From 9177ea835d11df9ecb97cf6c8990eae3c4cc36df Mon Sep 17 00:00:00 2001 From: AEHimself <57598335+aehimself@users.noreply.github.com> Date: Fri, 24 Jan 2025 11:47:11 +0100 Subject: [PATCH] Flushing parameter connection settings MUST be done even if the dataset is not active! --- src/component/ZAbstractRODataset.pas | 15 +++++++++++---- 1 file changed, 11 insertions(+), 4 deletions(-) diff --git a/src/component/ZAbstractRODataset.pas b/src/component/ZAbstractRODataset.pas index 2f99d9a52..c8092345f 100644 --- a/src/component/ZAbstractRODataset.pas +++ b/src/component/ZAbstractRODataset.pas @@ -319,6 +319,7 @@ TZAbstractRODataset = class(TDataSet) procedure RaiseWriteStateError; procedure RaiseFieldTypeMismatchError(const AField: TField; AFieldDef: TFieldDef); procedure RaiseFieldSizeMismatchError(const AField: TField; AFieldDef: TFieldDef); + procedure SetActive(Value: Boolean); Override; function FetchOneRow: Boolean; function FetchRows(RowCount: Integer): Boolean; function FilterRow(RowNo: NativeInt): Boolean; @@ -2063,6 +2064,16 @@ procedure TZAbstractRODataset.RaiseFieldReadOnlyError(const Field: TField); raise EZDatabaseError.Create(Format(SFieldReadOnly, [Field.DisplayName])); end; +procedure TZAbstractRODataset.SetActive(Value: Boolean); +begin + inherited; + + {$IFNDEF DISABLE_ZPARAM} + if (FParams <> nil) And Not Value then + FParams.FlushParameterConSettings; + {$ENDIF} +end; + procedure TZAbstractRODataset.RaiseFieldSizeMismatchError(const AField: TField; AFieldDef: TFieldDef); begin @@ -3977,10 +3988,6 @@ procedure TZAbstractRODataset.InternalClose; {$ENDIF} if CurrentRows <> nil then CurrentRows.Clear; - {$IFNDEF DISABLE_ZPARAM} - if FParams <> nil then - FParams.FlushParameterConSettings; - {$ENDIF} end; {**