diff options
| author | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-04-02 10:36:48 +0000 |
|---|---|---|
| committer | michael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2> | 2011-04-02 10:36:48 +0000 |
| commit | 37452256975295cbb7fd0e46a9bacc4adfe3a047 (patch) | |
| tree | fb855116e07e3ef10ee1aff11676afe243145d7e /packages/fcl-db | |
| parent | 7bb27fd5be63197d5bbe208c53e8e09bee0aae76 (diff) | |
| download | fpc-37452256975295cbb7fd0e46a9bacc4adfe3a047.tar.gz | |
* Added OnValidate event support (17510)
git-svn-id: http://svn.freepascal.org/svn/fpc/trunk@17220 3ad0048d-3df7-0310-abae-a5850022a9f2
Diffstat (limited to 'packages/fcl-db')
| -rw-r--r-- | packages/fcl-db/src/base/fields.inc | 8 |
1 files changed, 8 insertions, 0 deletions
diff --git a/packages/fcl-db/src/base/fields.inc b/packages/fcl-db/src/base/fields.inc index 6aea141531..175bd12676 100644 --- a/packages/fcl-db/src/base/fields.inc +++ b/packages/fcl-db/src/base/fields.inc @@ -820,7 +820,15 @@ procedure TField.SetData(Buffer: Pointer; NativeFormat : Boolean); begin If Not Assigned(FDataset) then DatabaseErrorFmt(SNoDataset,[FieldName]); + if (FieldNo>0) and not (FDataSet.State in [dsSetKey, dsFilter]) then + begin + if ReadOnly then + DatabaseErrorFmt(SReadOnlyField, [DisplayName], Self); + Validate(Buffer); + end; FDataSet.SetFieldData(Self,Buffer, NativeFormat); + if not (FDataSet.State in [dsCalcFields, dsFilter, dsNewValue]) then + DataChanged; end; Procedure TField.SetDataset (AValue : TDataset); |
