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