diff --git a/packages/fcl-db/src/base/db.pas b/packages/fcl-db/src/base/db.pas index cce404f80b..81207b0a0c 100644 --- a/packages/fcl-db/src/base/db.pas +++ b/packages/fcl-db/src/base/db.pas @@ -368,7 +368,7 @@ type procedure SetAsString(const AValue: string); virtual; procedure SetAsWideString(const AValue: WideString); virtual; procedure SetDataset(AValue : TDataset); virtual; - procedure SetDataType(AValue: TFieldType); + procedure SetDataType(AValue: TFieldType); virtual; procedure SetNewValue(const AValue: Variant); procedure SetSize(AValue: Integer); virtual; procedure SetParentComponent(AParent: TComponent); override; @@ -880,6 +880,7 @@ type procedure GetText(var TheText: string; ADisplayText: Boolean); override; procedure SetAsBytes(const AValue: TBytes); override; procedure SetAsString(const AValue: string); override; + procedure SetDataType(AValue: TFieldType); override; procedure SetText(const AValue: string); override; procedure SetVarValue(const AValue: Variant); override; procedure SetAsWideString(const AValue: WideString); override; diff --git a/packages/fcl-db/src/base/fields.inc b/packages/fcl-db/src/base/fields.inc index 41b50e78f3..191976887a 100644 --- a/packages/fcl-db/src/base/fields.inc +++ b/packages/fcl-db/src/base/fields.inc @@ -805,13 +805,11 @@ end; procedure TField.SetAsLongint(AValue: Longint); - begin SetAsInteger(AValue); end; procedure TField.SetAsInteger(AValue: Longint); - begin raise AccessError(SInteger); end; @@ -822,7 +820,6 @@ begin end; procedure TField.SetAsString(const AValue: string); - begin Raise AccessError(SString); end; @@ -1915,7 +1912,7 @@ constructor TFloatField.Create(AOwner: TComponent); begin Inherited Create(AOwner); - SetDatatype(ftfloat); + SetDatatype(ftFloat); FPrecision:=15; FValidChars := [DecimalSeparator, '+', '-', '0'..'9', 'E', 'e']; end; @@ -2386,7 +2383,7 @@ constructor TVarBytesField.Create(AOwner: TComponent); begin INherited Create(AOwner); - SetDataType(ftvarbytes); + SetDataType(ftVarBytes); Size:=16; end; @@ -2897,6 +2894,13 @@ begin end; end; +procedure TBlobField.SetDataType(AValue: TFieldType); +begin + inherited SetDataType(AValue); + If AValue in [Low(TBlobType)..High(TBlobType)] then + FBlobType := AValue; +end; + procedure TBlobField.SetAsWideString(const AValue: WideString); var