Browse Source

* Fixed saving/restoring of precision in TDDFielddef

git-svn-id: trunk@11351 -
michael 17 years ago
parent
commit
4705c4c5de
1 changed files with 7 additions and 2 deletions
  1. 7 2
      packages/fcl-db/src/datadict/fpdatadict.pp

+ 7 - 2
packages/fcl-db/src/datadict/fpdatadict.pp

@@ -404,6 +404,7 @@ Const
   KeyRequired               = 'Required';
   KeyRequired               = 'Required';
   KeyVisible                = 'Visible';
   KeyVisible                = 'Visible';
   KeySize                   = 'Size';
   KeySize                   = 'Size';
+  KeyPrecision              = 'Precision';
   KeyFieldType              = 'FieldType';
   KeyFieldType              = 'FieldType';
   KeyHint                   = 'Hint';
   KeyHint                   = 'Hint';
 
 
@@ -790,7 +791,9 @@ begin
     begin
     begin
     WriteInteger(ASection,KeyFieldType,Ord(Fieldtype));
     WriteInteger(ASection,KeyFieldType,Ord(Fieldtype));
     If IsSizeStored then
     If IsSizeStored then
-      WriteInteger(ASection,KeySize,Ord(Size));
+      WriteInteger(ASection,KeySize,Size);
+    If IsPrecisionStored then
+      WriteInteger(ASection,KeyPrecision,Precision);
     WriteInteger(ASection,KeyAlignMent,Ord(AlignMent));
     WriteInteger(ASection,KeyAlignMent,Ord(AlignMent));
     WriteInteger(ASection,KeyDisplayWidth,DisplayWidth);
     WriteInteger(ASection,KeyDisplayWidth,DisplayWidth);
     WriteString(ASection,KeyCustomConstraint,CustomConstraint);
     WriteString(ASection,KeyCustomConstraint,CustomConstraint);
@@ -815,6 +818,8 @@ begin
     FieldType:=TFieldType(ReadInteger(ASection,KeyFieldType,Ord(Fieldtype)));
     FieldType:=TFieldType(ReadInteger(ASection,KeyFieldType,Ord(Fieldtype)));
     If IsSizeStored then
     If IsSizeStored then
       Size:=ReadInteger(ASection,KeySize,0);
       Size:=ReadInteger(ASection,KeySize,0);
+    If IsPrecisionStored then
+      Precision:=ReadInteger(ASection,KeyPrecision,0);
     Alignment:=TAlignment(ReadInteger(ASection,KeyAlignMent,Ord(AlignMent)));
     Alignment:=TAlignment(ReadInteger(ASection,KeyAlignMent,Ord(AlignMent)));
     DisplayWidth:=ReadInteger(ASection,KeyDisplayWidth,DisplayWidth);
     DisplayWidth:=ReadInteger(ASection,KeyDisplayWidth,DisplayWidth);
     CustomConstraint:=ReadString(ASection,KeyCustomConstraint,CustomConstraint);
     CustomConstraint:=ReadString(ASection,KeyCustomConstraint,CustomConstraint);
@@ -1572,7 +1577,7 @@ begin
       Result:=Result+Format('(%d)',[FD.Size]);
       Result:=Result+Format('(%d)',[FD.Size]);
     ftBCD,
     ftBCD,
     ftFMTBCD :
     ftFMTBCD :
-      Result:=Result+Format('(%d,%d)',[FD.Precision,FD.Size]);
+      Result:=Result+Format('(%d,%d)',[FD.Size,FD.Precision]);
   end;
   end;
 end;
 end;