Browse Source

fcl-db: implement setter and getter for TStringField.AsLargeInt

git-svn-id: trunk@29624 -
lacak 10 years ago
parent
commit
35a84ab6bd
2 changed files with 41 additions and 30 deletions
  1. 11 9
      packages/fcl-db/src/base/db.pas
  2. 30 21
      packages/fcl-db/src/base/fields.inc

+ 11 - 9
packages/fcl-db/src/base/db.pas

@@ -22,7 +22,7 @@ unit db;
 
 
 interface
 interface
 
 
-uses Classes,Sysutils,Variants,FmtBCD,MaskUtils;
+uses Classes,SysUtils,Variants,FmtBCD,MaskUtils;
 
 
 const
 const
 
 
@@ -328,7 +328,7 @@ type
     function GetAsBoolean: Boolean; virtual;
     function GetAsBoolean: Boolean; virtual;
     function GetAsBytes: TBytes; virtual;
     function GetAsBytes: TBytes; virtual;
     function GetAsCurrency: Currency; virtual;
     function GetAsCurrency: Currency; virtual;
-    function GetAsLargeInt: LargeInt; virtual;
+    function GetAsLargeInt: Largeint; virtual;
     function GetAsDateTime: TDateTime; virtual;
     function GetAsDateTime: TDateTime; virtual;
     function GetAsFloat: Double; virtual;
     function GetAsFloat: Double; virtual;
     function GetAsLongint: Longint; virtual;
     function GetAsLongint: Longint; virtual;
@@ -359,7 +359,7 @@ type
     procedure SetAsFloat(AValue: Double); virtual;
     procedure SetAsFloat(AValue: Double); virtual;
     procedure SetAsLongint(AValue: Longint); virtual;
     procedure SetAsLongint(AValue: Longint); virtual;
     procedure SetAsInteger(AValue: Longint); virtual;
     procedure SetAsInteger(AValue: Longint); virtual;
-    procedure SetAsLargeint(AValue: Largeint); virtual;
+    procedure SetAsLargeInt(AValue: Largeint); virtual;
     procedure SetAsVariant(const AValue: variant); virtual;
     procedure SetAsVariant(const AValue: variant); virtual;
     procedure SetAsString(const AValue: string); virtual;
     procedure SetAsString(const AValue: string); virtual;
     procedure SetAsWideString(const AValue: WideString); virtual;
     procedure SetAsWideString(const AValue: WideString); virtual;
@@ -462,6 +462,7 @@ type
     function GetAsDateTime: TDateTime; override;
     function GetAsDateTime: TDateTime; override;
     function GetAsFloat: Double; override;
     function GetAsFloat: Double; override;
     function GetAsInteger: Longint; override;
     function GetAsInteger: Longint; override;
+    function GetAsLargeInt: Largeint; override;
     function GetAsString: string; override;
     function GetAsString: string; override;
     function GetAsVariant: variant; override;
     function GetAsVariant: variant; override;
     function GetDataSize: Integer; override;
     function GetDataSize: Integer; override;
@@ -472,6 +473,7 @@ type
     procedure SetAsDateTime(AValue: TDateTime); override;
     procedure SetAsDateTime(AValue: TDateTime); override;
     procedure SetAsFloat(AValue: Double); override;
     procedure SetAsFloat(AValue: Double); override;
     procedure SetAsInteger(AValue: Longint); override;
     procedure SetAsInteger(AValue: Longint); override;
+    procedure SetAsLargeInt(AValue: Largeint); override;
     procedure SetAsString(const AValue: string); override;
     procedure SetAsString(const AValue: string); override;
     procedure SetVarValue(const AValue: Variant); override;
     procedure SetVarValue(const AValue: Variant); override;
   public
   public
@@ -552,8 +554,8 @@ type
     procedure SetAsInteger(AValue: Longint); override;
     procedure SetAsInteger(AValue: Longint); override;
     procedure SetAsString(const AValue: string); override;
     procedure SetAsString(const AValue: string); override;
     procedure SetVarValue(const AValue: Variant); override;
     procedure SetVarValue(const AValue: Variant); override;
-    function GetAsLargeint: Largeint; override;
-    procedure SetAsLargeint(AValue: Largeint); override;
+    function GetAsLargeInt: Largeint; override;
+    procedure SetAsLargeInt(AValue: Largeint); override;
   public
   public
     constructor Create(AOwner: TComponent); override;
     constructor Create(AOwner: TComponent); override;
     Function CheckRange(AValue : Longint) : Boolean;
     Function CheckRange(AValue : Longint) : Boolean;
@@ -577,7 +579,7 @@ type
   protected
   protected
     function GetAsFloat: Double; override;
     function GetAsFloat: Double; override;
     function GetAsInteger: Longint; override;
     function GetAsInteger: Longint; override;
-    function GetAsLargeint: Largeint; override;
+    function GetAsLargeInt: Largeint; override;
     function GetAsString: string; override;
     function GetAsString: string; override;
     function GetAsVariant: variant; override;
     function GetAsVariant: variant; override;
     function GetDataSize: Integer; override;
     function GetDataSize: Integer; override;
@@ -585,13 +587,13 @@ type
     function GetValue(var AValue: Largeint): Boolean;
     function GetValue(var AValue: Largeint): Boolean;
     procedure SetAsFloat(AValue: Double); override;
     procedure SetAsFloat(AValue: Double); override;
     procedure SetAsInteger(AValue: Longint); override;
     procedure SetAsInteger(AValue: Longint); override;
-    procedure SetAsLargeint(AValue: Largeint); override;
+    procedure SetAsLargeInt(AValue: Largeint); override;
     procedure SetAsString(const AValue: string); override;
     procedure SetAsString(const AValue: string); override;
     procedure SetVarValue(const AValue: Variant); override;
     procedure SetVarValue(const AValue: Variant); override;
   public
   public
     constructor Create(AOwner: TComponent); override;
     constructor Create(AOwner: TComponent); override;
-    Function CheckRange(AValue : largeint) : Boolean;
-    property Value: Largeint read GetAsLargeint write SetAsLargeint;
+    Function CheckRange(AValue : Largeint) : Boolean;
+    property Value: Largeint read GetAsLargeInt write SetAsLargeInt;
   published
   published
     property MaxValue: Largeint read FMaxValue write SetMaxValue default 0;
     property MaxValue: Largeint read FMaxValue write SetMaxValue default 0;
     property MinValue: Largeint read FMinValue write SetMinValue default 0;
     property MinValue: Largeint read FMinValue write SetMinValue default 0;

+ 30 - 21
packages/fcl-db/src/base/fields.inc

@@ -814,7 +814,7 @@ begin
   raise AccessError(SInteger);
   raise AccessError(SInteger);
 end;
 end;
 
 
-procedure TField.SetAsLargeint(AValue: Largeint);
+procedure TField.SetAsLargeInt(AValue: Largeint);
 begin
 begin
   Raise AccessError(SLargeInt);
   Raise AccessError(SLargeInt);
 end;
 end;
@@ -1068,6 +1068,12 @@ begin
   Result:=StrToInt(GetAsString);
   Result:=StrToInt(GetAsString);
 end;
 end;
 
 
+function TStringField.GetAsLargeInt: Largeint;
+
+begin
+  Result:=StrToInt64(GetAsString);
+end;
+
 function TStringField.GetAsString: string;
 function TStringField.GetAsString: string;
 
 
 begin
 begin
@@ -1169,7 +1175,13 @@ end;
 procedure TStringField.SetAsInteger(AValue: Longint);
 procedure TStringField.SetAsInteger(AValue: Longint);
 
 
 begin
 begin
-  SetAsString(intToStr(AValue));
+  SetAsString(IntToStr(AValue));
+end;
+
+procedure TStringField.SetAsLargeInt(AValue: Largeint);
+
+begin
+  SetAsString(IntToStr(AValue));
 end;
 end;
 
 
 procedure TStringField.SetAsString(const AValue: string);
 procedure TStringField.SetAsString(const AValue: string);
@@ -1385,7 +1397,7 @@ begin
   Result:=GetAsInteger;
   Result:=GetAsInteger;
 end;
 end;
 
 
-function TLongintField.GetAsLargeint: Largeint;
+function TLongintField.GetAsLargeInt: Largeint;
 begin
 begin
   Result:=GetAsInteger;
   Result:=GetAsInteger;
 end;
 end;
@@ -1459,7 +1471,7 @@ begin
     end;
     end;
 end;
 end;
 
 
-procedure TLongintField.SetAsLargeint(AValue: Largeint);
+procedure TLongintField.SetAsLargeInt(AValue: Largeint);
 begin
 begin
   if (AValue>=FMinRange) and (AValue<=FMaxRange) then
   if (AValue>=FMinRange) and (AValue<=FMaxRange) then
     SetAsInteger(AValue)
     SetAsInteger(AValue)
@@ -1552,10 +1564,10 @@ end;
 function TLargeintField.GetAsFloat: Double;
 function TLargeintField.GetAsFloat: Double;
 
 
 begin
 begin
-  Result:=GetAsLargeint;
+  Result:=GetAsLargeInt;
 end;
 end;
 
 
-function TLargeintField.GetAsLargeint: Largeint;
+function TLargeintField.GetAsLargeInt: Largeint;
 
 
 begin
 begin
   If Not GetValue(Result) then
   If Not GetValue(Result) then
@@ -1576,7 +1588,7 @@ end;
 function TLargeintField.GetAsInteger: Longint;
 function TLargeintField.GetAsInteger: Longint;
 
 
 begin
 begin
-  Result:=GetAsLargeint;
+  Result:=GetAsLargeInt;
 end;
 end;
 
 
 function TLargeintField.GetAsString: string;
 function TLargeintField.GetAsString: string;
@@ -1598,7 +1610,7 @@ end;
 
 
 procedure TLargeintField.GetText(var AText: string; ADisplayText: Boolean);
 procedure TLargeintField.GetText(var AText: string; ADisplayText: Boolean);
 
 
-var l : largeint;
+var l : Largeint;
     fmt : string;
     fmt : string;
 
 
 begin
 begin
@@ -1616,9 +1628,6 @@ end;
 
 
 function TLargeintField.GetValue(var AValue: Largeint): Boolean;
 function TLargeintField.GetValue(var AValue: Largeint): Boolean;
 
 
-type
-  PLargeint = ^Largeint;
-
 var P : PLargeint;
 var P : PLargeint;
 
 
 begin
 begin
@@ -1629,10 +1638,10 @@ end;
 procedure TLargeintField.SetAsFloat(AValue: Double);
 procedure TLargeintField.SetAsFloat(AValue: Double);
 
 
 begin
 begin
-  SetAsLargeint(Round(AValue));
+  SetAsLargeInt(Round(AValue));
 end;
 end;
 
 
-procedure TLargeintField.SetAsLargeint(AValue: Largeint);
+procedure TLargeintField.SetAsLargeInt(AValue: Largeint);
 
 
 begin
 begin
   If CheckRange(AValue) then
   If CheckRange(AValue) then
@@ -1644,13 +1653,13 @@ end;
 procedure TLargeintField.SetAsInteger(AValue: Longint);
 procedure TLargeintField.SetAsInteger(AValue: Longint);
 
 
 begin
 begin
-  SetAsLargeint(AValue);
+  SetAsLargeInt(AValue);
 end;
 end;
 
 
 procedure TLargeintField.SetAsString(const AValue: string);
 procedure TLargeintField.SetAsString(const AValue: string);
 
 
-var L     : largeint;
-    code  : longint;
+var L     : Largeint;
+    code  : Longint;
 
 
 begin
 begin
   If length(AValue)=0 then
   If length(AValue)=0 then
@@ -1659,7 +1668,7 @@ begin
     begin
     begin
     Val(AValue,L,Code);
     Val(AValue,L,Code);
     If Code=0 then
     If Code=0 then
-      SetAsLargeint(L)
+      SetAsLargeInt(L)
     else
     else
       DatabaseErrorFmt(SNotAnInteger,[AValue]);
       DatabaseErrorFmt(SNotAnInteger,[AValue]);
     end;
     end;
@@ -1667,10 +1676,10 @@ end;
 
 
 procedure TLargeintField.SetVarValue(const AValue: Variant);
 procedure TLargeintField.SetVarValue(const AValue: Variant);
 begin
 begin
-  SetAsLargeint(AValue);
+  SetAsLargeInt(AValue);
 end;
 end;
 
 
-Function TLargeintField.CheckRange(AValue : largeint) : Boolean;
+Function TLargeintField.CheckRange(AValue : Largeint) : Boolean;
 
 
 begin
 begin
   if (FMinValue<>0) or (FMaxValue<>0) then
   if (FMinValue<>0) or (FMaxValue<>0) then
@@ -1679,7 +1688,7 @@ begin
     Result := (AValue>=FMinRange) and (AValue<=FMaxRange);
     Result := (AValue>=FMinRange) and (AValue<=FMaxRange);
 end;
 end;
 
 
-Procedure TLargeintField.SetMaxValue (AValue : largeint);
+Procedure TLargeintField.SetMaxValue (AValue : Largeint);
 
 
 begin
 begin
   If (AValue>=FMinRange) and (AValue<=FMaxRange) then
   If (AValue>=FMinRange) and (AValue<=FMaxRange) then
@@ -1688,7 +1697,7 @@ begin
     RangeError(AValue,FMinRange,FMaxRange);
     RangeError(AValue,FMinRange,FMaxRange);
 end;
 end;
 
 
-Procedure TLargeintField.SetMinValue (AValue : largeint);
+Procedure TLargeintField.SetMinValue (AValue : Largeint);
 
 
 begin
 begin
   If (AValue>=FMinRange) and (AValue<=FMaxRange) then
   If (AValue>=FMinRange) and (AValue<=FMaxRange) then