From 0c75c760bfd66aea815f7e08a5211b5b2f2b5fe5 Mon Sep 17 00:00:00 2001 From: lacak Date: Thu, 20 Oct 2016 12:37:25 +0000 Subject: [PATCH] fcl-db: base: Check if Required is copied from Fields to FieldDefs (cosmetic) git-svn-id: trunk@34745 - --- packages/fcl-db/src/base/dataset.inc | 18 +++++++++--------- .../fcl-db/tests/testspecifictbufdataset.pas | 4 ++++ 2 files changed, 13 insertions(+), 9 deletions(-) diff --git a/packages/fcl-db/src/base/dataset.inc b/packages/fcl-db/src/base/dataset.inc index 597d17a629..88af0c44ee 100644 --- a/packages/fcl-db/src/base/dataset.inc +++ b/packages/fcl-db/src/base/dataset.inc @@ -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 diff --git a/packages/fcl-db/tests/testspecifictbufdataset.pas b/packages/fcl-db/tests/testspecifictbufdataset.pas index 1c4e73cb47..792deb382d 100644 --- a/packages/fcl-db/tests/testspecifictbufdataset.pas +++ b/packages/fcl-db/tests/testspecifictbufdataset.pas @@ -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');