|
@@ -35,8 +35,13 @@ type
|
|
EFieldMap = Class(EDatabaseError);
|
|
EFieldMap = Class(EDatabaseError);
|
|
|
|
|
|
{ TFieldMap }
|
|
{ TFieldMap }
|
|
|
|
+ TTransformMap = class(TObject)
|
|
|
|
+ function TransFormString(const aString : RawByteString) : RawByteString; virtual;
|
|
|
|
+ function TransFormString(const aString : UnicodeString) : UnicodeString; virtual;
|
|
|
|
+ function TransFormString(const aString : WideString) : WideString; virtual;
|
|
|
|
+ end;
|
|
|
|
|
|
- TFieldMap = Class(TObject)
|
|
|
|
|
|
+ TFieldMap = Class(TTransFormMap)
|
|
private
|
|
private
|
|
FDataset: TDataset;
|
|
FDataset: TDataset;
|
|
FFreeDataset: Boolean;
|
|
FFreeDataset: Boolean;
|
|
@@ -70,12 +75,25 @@ type
|
|
|
|
|
|
{ TParamMap }
|
|
{ TParamMap }
|
|
|
|
|
|
- TParamMap = Class(TObject)
|
|
|
|
|
|
+ TParamMap = Class(TTransformMap)
|
|
private
|
|
private
|
|
FParams: TParams;
|
|
FParams: TParams;
|
|
Protected
|
|
Protected
|
|
Function FindParam(const FN : String) : TParam;
|
|
Function FindParam(const FN : String) : TParam;
|
|
Function ParamByName(const FN : String) : TParam;
|
|
Function ParamByName(const FN : String) : TParam;
|
|
|
|
+ Function SetParam(P : TParam; aValue : TBCD) : Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; aValue : Integer) : Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; const aValue : AnsiString) : Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; aValue : Boolean) : Boolean; overload;
|
|
|
|
+ function SetDateParam(P: TParam; aValue: TDateTime): Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; aValue : Double) : Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; aValue : Single) : Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; aValue : Int64) : Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; aValue : LongWord) : Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; aValue : Currency) : Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; const aValue : UnicodeString) : Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; const aValue : WideString) : Boolean; overload;
|
|
|
|
+ Function SetParam(P : TParam; aValue : TBytes) : Boolean; overload;
|
|
Public
|
|
Public
|
|
Constructor Create(AParams : TParams);
|
|
Constructor Create(AParams : TParams);
|
|
Procedure InitParams; virtual; abstract;
|
|
Procedure InitParams; virtual; abstract;
|
|
@@ -472,6 +490,23 @@ begin
|
|
Dataset.Cancel;
|
|
Dataset.Cancel;
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+{ TTransformMap }
|
|
|
|
+
|
|
|
|
+function TTransformMap.TransFormString(const aString: RawByteString): RawByteString;
|
|
|
|
+begin
|
|
|
|
+ Result:=aString;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TTransformMap.TransFormString(const aString: UnicodeString): UnicodeString;
|
|
|
|
+begin
|
|
|
|
+ Result:=aString;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TTransformMap.TransFormString(const aString: WideString): WideString;
|
|
|
|
+begin
|
|
|
|
+ Result:=aString;
|
|
|
|
+end;
|
|
|
|
+
|
|
{ TParamMap }
|
|
{ TParamMap }
|
|
|
|
|
|
function TParamMap.FindParam(const FN: String): TParam;
|
|
function TParamMap.FindParam(const FN: String): TParam;
|
|
@@ -488,6 +523,98 @@ begin
|
|
Result:=FParams.ParamByName(FN);
|
|
Result:=FParams.ParamByName(FN);
|
|
end;
|
|
end;
|
|
|
|
|
|
|
|
+function TParamMap.SetParam(P: TParam; aValue: TBCD): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsFMTBCD:=aValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; aValue: Integer): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsInteger:=aValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; const aValue: AnsiString): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsString:=TransFormString(aValue);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; aValue: Boolean): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsBoolean:=aValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetDateParam(P: TParam; aValue: TDateTime): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsDateTime:=aValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; aValue: Double): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsFloat:=aValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; aValue: Single): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsSingle:=aValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; aValue: Int64): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsLargeInt:=aValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; aValue: LongWord): Boolean;
|
|
|
|
+
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsLongWord:=aValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; aValue: Currency): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsCurrency:=aValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; const aValue: UnicodeString): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsUnicodeString:=TransFormString(aValue);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; const aValue: WideString): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsWideString:=TransFormString(aValue);
|
|
|
|
+end;
|
|
|
|
+
|
|
|
|
+function TParamMap.SetParam(P: TParam; aValue: TBytes): Boolean;
|
|
|
|
+begin
|
|
|
|
+ Result:=Assigned(P);
|
|
|
|
+ If Result then
|
|
|
|
+ P.AsBytes:=aValue;
|
|
|
|
+end;
|
|
|
|
+
|
|
constructor TParamMap.Create(AParams: TParams);
|
|
constructor TParamMap.Create(AParams: TParams);
|
|
begin
|
|
begin
|
|
FParams:=AParams;
|
|
FParams:=AParams;
|
|
@@ -565,6 +692,7 @@ begin
|
|
Result:=F.AsString
|
|
Result:=F.AsString
|
|
else
|
|
else
|
|
Result:=ADefault;
|
|
Result:=ADefault;
|
|
|
|
+ Result:=TransFormString(Result);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TFieldMap.GetFromField(F: TField; ADefault: Boolean): Boolean;
|
|
function TFieldMap.GetFromField(F: TField; ADefault: Boolean): Boolean;
|
|
@@ -637,6 +765,7 @@ begin
|
|
Result:=F.AsUnicodeString
|
|
Result:=F.AsUnicodeString
|
|
else
|
|
else
|
|
Result:=ADefault;
|
|
Result:=ADefault;
|
|
|
|
+ Result:=TransFormString(Result);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TFieldMap.GetFromField(F: TField; const ADefault: WideString): WideString;
|
|
function TFieldMap.GetFromField(F: TField; const ADefault: WideString): WideString;
|
|
@@ -645,6 +774,7 @@ begin
|
|
Result:=F.AsWideString
|
|
Result:=F.AsWideString
|
|
else
|
|
else
|
|
Result:=ADefault;
|
|
Result:=ADefault;
|
|
|
|
+ Result:=TransFormString(Result);
|
|
end;
|
|
end;
|
|
|
|
|
|
function TFieldMap.GetFromField(F: TField; ADefault: TBytes): TBytes;
|
|
function TFieldMap.GetFromField(F: TField; ADefault: TBytes): TBytes;
|