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
Insert;
for i := 0 to ValuesSize-1 do with values[i] do
fields[i].AssignValue(values[i]);
for i := 0 to ValuesSize-1 do
Fields[i].AssignValue(Values[i]);
Post;
end;
procedure TDataSet.InitFieldDefsFromfields;
procedure TDataSet.InitFieldDefsFromFields;
var i : integer;
begin
if FieldDefs.count = 0 then
if FieldDefs.Count = 0 then
begin
FieldDefs.BeginUpdate;
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.
begin
FFieldDef:=FieldDefs.FieldDefClass.Create(FieldDefs,FieldName,DataType,Size,Required,FieldDefs.Count+1);
with FFieldDef do
begin
if Required then Attributes := attributes + [faRequired];
if ReadOnly then Attributes := attributes + [faReadOnly];
if DataType = ftBCD then precision := (fields[i] as TBCDField).Precision
else if DataType = ftFMTBcd then precision := (fields[i] as TFMTBCDField).Precision;
if Required then Attributes := Attributes + [faRequired];
if ReadOnly then Attributes := Attributes + [faReadOnly];
if DataType = ftBCD then Precision := (Fields[i] as TBCDField).Precision
else if DataType = ftFMTBcd then Precision := (Fields[i] as TFMTBCDField).Precision;
end;
end;
finally

View File

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