On 5/4/2011 04:38, michael.vancann...@wisa.be wrote:
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,
I still think that is overkill: adding a method to replace just two
lines of code.
Anyway, if you decide this way, consider another name. Sometimes is to
be called in the "middle" of SetFieldData
and the same for 'AfterSetFieldData' with the OnChange code.
This one is a bit more odd since currently only bufdataset will use it
(or do you plan to replace the existing code in descendants?)
Luiz
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel