fcl-db: base: Check if Required is copied from Fields to FieldDefs (cosmetic)

git-svn-id: trunk@34745 -
This commit is contained in:
lacak 2016-10-20 12:37:25 +00:00
parent 2febc31303
commit 0c75c760bf
2 changed files with 13 additions and 9 deletions

View File

@ -902,30 +902,30 @@ begin
else else
Insert; Insert;
for i := 0 to ValuesSize-1 do with values[i] do for i := 0 to ValuesSize-1 do
fields[i].AssignValue(values[i]); Fields[i].AssignValue(Values[i]);
Post; Post;
end; end;
procedure TDataSet.InitFieldDefsFromfields; procedure TDataSet.InitFieldDefsFromFields;
var i : integer; var i : integer;
begin begin
if FieldDefs.count = 0 then if FieldDefs.Count = 0 then
begin begin
FieldDefs.BeginUpdate; FieldDefs.BeginUpdate;
try try
for i := 0 to Fields.Count-1 do with fields[i] do for i := 0 to Fields.Count-1 do with Fields[i] do
if not (FieldKind in [fkCalculated,fkLookup]) then // Do not add fielddefs for calculated/lookup fields. if not (FieldKind in [fkCalculated,fkLookup]) then // Do not add fielddefs for calculated/lookup fields.
begin begin
FFieldDef:=FieldDefs.FieldDefClass.Create(FieldDefs,FieldName,DataType,Size,Required,FieldDefs.Count+1); FFieldDef:=FieldDefs.FieldDefClass.Create(FieldDefs,FieldName,DataType,Size,Required,FieldDefs.Count+1);
with FFieldDef do with FFieldDef do
begin begin
if Required then Attributes := attributes + [faRequired]; if Required then Attributes := Attributes + [faRequired];
if ReadOnly then Attributes := attributes + [faReadOnly]; if ReadOnly then Attributes := Attributes + [faReadOnly];
if DataType = ftBCD then precision := (fields[i] as TBCDField).Precision if DataType = ftBCD then Precision := (Fields[i] as TBCDField).Precision
else if DataType = ftFMTBcd then precision := (fields[i] as TFMTBCDField).Precision; else if DataType = ftFMTBcd then Precision := (Fields[i] as TFMTBCDField).Precision;
end; end;
end; end;
finally finally

View File

@ -195,9 +195,11 @@ begin
try try
F := TIntegerField.Create(ds); F := TIntegerField.Create(ds);
F.FieldName:='ID'; F.FieldName:='ID';
F.Required:=True;
F.DataSet:=ds; F.DataSet:=ds;
F := TStringField.Create(ds); F := TStringField.Create(ds);
F.FieldName:='NAME'; F.FieldName:='NAME';
F.Required:=False;
F.DataSet:=ds; F.DataSet:=ds;
F.Size:=50; F.Size:=50;
@ -221,6 +223,8 @@ begin
TestDataset(ds); TestDataset(ds);
CheckTrue(ds.FieldDefs[0].Required, 'Required');
CheckFalse(ds.FieldDefs[1].Required, 'not Required');
for i := 0 to ds.FieldDefs.Count-1 do for i := 0 to ds.FieldDefs.Count-1 do
begin begin
CheckNotEquals(ds.FieldDefs[i].Name,'NAME_CALC'); CheckNotEquals(ds.FieldDefs[i].Name,'NAME_CALC');