[fpc-devel] Recent changes to TField.SetData

michael.vancanneyt at wisa.be michael.vancanneyt at wisa.be
Tue Apr 5 09:38:33 CEST 2011



On Tue, 5 Apr 2011, LacaK wrote:

>
>> 
>> 
>> --or--
>> introduce any new method (ValidateFieldData ? ;-))) and let tdatsset 
>> descendants use it:
>> {$IFDEF FPC}
>> ValidateFieldData(Field: TField; Buffer: Pointer);
>> {$ENDIF}
>> 
>> --or--
>> some smarter solution ?
>> 
> The whole code, which is repeated (and can be put in one place) is:
>
> if not (State in [dsEdit, dsInsert, dsFilter, dsCalcFields]) then
> begin
>   DatabaseErrorFmt(SNotEditing,[Name],self);
>   exit;
> end;
> if (Field.FieldNo>0) and not (State in [dsSetKey, dsFilter]) then
> begin
>   if ReadOnly then DatabaseErrorFmt(SReadOnlyField, [Field.DisplayName], 
> Self);
>   Field.Validate(Buffer);
> end;

You are right in your dislike.

I will create a 'BeforeSetFieldData' in TDataset and put the code in there,
and the same for 'AfterSetFieldData' with the OnChange code.

Michael.



More information about the fpc-devel mailing list