Michael Van Canneyt wrote:
No. It could be that Delphi 3 had an integer argument, but I'm not sure.
The FPC TDataset was originally coded when Delphi was at version 3.
I am sure all delphi versions since 3 have them as Integer.
Adding the BCD methods should not hurt, feel free to send a patch.
A minimal start is attached.

Best regards,
Paul Ishenin.
Index: packages/fcl-db/src/base/db.pas
===================================================================
--- packages/fcl-db/src/base/db.pas     (revision 11131)
+++ packages/fcl-db/src/base/db.pas     (working copy)
@@ -22,7 +22,7 @@
 
 interface
 
-uses Classes,Sysutils,Variants;
+uses Classes,Sysutils,Variants,FmtBCD;
 
 const
 
@@ -319,6 +319,7 @@
     procedure Change; virtual;
     procedure DataChanged;
     procedure FreeBuffers; virtual;
+    function GetAsBCD: TBCD; virtual;
     function GetAsBoolean: Boolean; virtual;
     function GetAsCurrency: Currency; virtual;
     function GetAsLargeInt: LargeInt; virtual;
@@ -344,6 +345,7 @@
     procedure Notification(AComponent: TComponent; Operation: TOperation); 
override;
     procedure PropertyChanged(LayoutAffected: Boolean);
     procedure ReadState(Reader: TReader); override;
+    procedure SetAsBCD(const AValue: TBCD); virtual;
     procedure SetAsBoolean(AValue: Boolean); virtual;
     procedure SetAsCurrency(AValue: Currency); virtual;
     procedure SetAsDateTime(AValue: TDateTime); virtual;
@@ -377,6 +379,7 @@
     procedure SetData(Buffer: Pointer; NativeFormat : Boolean); overload;
     procedure SetFieldType(AValue: TFieldType); virtual;
     procedure Validate(Buffer: Pointer);
+    property AsBCD: TBCD read GetAsBCD write SetAsBCD;
     property AsBoolean: Boolean read GetAsBoolean write SetAsBoolean;
     property AsCurrency: Currency read GetAsCurrency write SetAsCurrency;
     property AsDateTime: TDateTime read GetAsDateTime write SetAsDateTime;
@@ -1937,7 +1940,7 @@
 
 implementation
 
-uses dbconst,typinfo, fmtbcd;
+uses dbconst,typinfo;
 
 { ---------------------------------------------------------------------
     Auxiliary functions
Index: packages/fcl-db/src/base/fields.inc
===================================================================
--- packages/fcl-db/src/base/fields.inc (revision 11131)
+++ packages/fcl-db/src/base/fields.inc (working copy)
@@ -278,6 +278,7 @@
   ---------------------------------------------------------------------}
 
 Const
+  SBCD = 'BCD';
   SBoolean = 'Boolean';
   SDateTime = 'TDateTime';
   SFloat = 'Float';
@@ -608,6 +609,11 @@
     Result:=-1;
 end;
 
+function TField.GetAsBCD: TBCD;
+begin
+  raise AccessError(SBCD);
+end;
+
 function TField.GetLookup: Boolean;
 begin
   Result := FieldKind = fkLookup;
@@ -632,6 +638,11 @@
     end;
 end;
 
+procedure TField.SetAsBCD(const AValue: TBCD);
+begin
+  Raise AccessError(SBCD);
+end;
+
 procedure TField.SetIndex(const AValue: Integer);
 begin
   if FFields <> nil then FFields.SetFieldIndex(Self, AValue)
_______________________________________________
fpc-devel maillist  -  [email protected]
http://lists.freepascal.org/mailman/listinfo/fpc-devel

Reply via email to