summaryrefslogtreecommitdiff
path: root/packages/fcl-db
diff options
context:
space:
mode:
authormichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-04-02 10:36:48 +0000
committermichael <michael@3ad0048d-3df7-0310-abae-a5850022a9f2>2011-04-02 10:36:48 +0000
commit37452256975295cbb7fd0e46a9bacc4adfe3a047 (patch)
treefb855116e07e3ef10ee1aff11676afe243145d7e /packages/fcl-db
parent7bb27fd5be63197d5bbe208c53e8e09bee0aae76 (diff)
downloadfpc-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.inc8
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);