* fcl-db: TParam.SetAs***: set variant datatype before value assignment. Mantis #24728. Patch by Andrew Brunner.

git-svn-id: trunk@25233 -
This commit is contained in:
reiniero 2013-08-11 10:14:04 +00:00
parent a5517cd3d4
commit 83e843fe2a

View File

@ -607,84 +607,84 @@ end;
Procedure TParam.SetAsBlob(const AValue: TBlobData); Procedure TParam.SetAsBlob(const AValue: TBlobData);
begin begin
Value:=AValue;
FDataType:=ftBlob; FDataType:=ftBlob;
Value:=AValue;
end; end;
Procedure TParam.SetAsBoolean(AValue: Boolean); Procedure TParam.SetAsBoolean(AValue: Boolean);
begin begin
Value:=AValue;
FDataType:=ftBoolean; FDataType:=ftBoolean;
Value:=AValue;
end; end;
Procedure TParam.SetAsCurrency(const AValue: Currency); Procedure TParam.SetAsCurrency(const AValue: Currency);
begin begin
Value:=Avalue;
FDataType:=ftCurrency; FDataType:=ftCurrency;
Value:=Avalue;
end; end;
Procedure TParam.SetAsDate(const AValue: TDateTime); Procedure TParam.SetAsDate(const AValue: TDateTime);
begin begin
Value:=Avalue;
FDataType:=ftDate; FDataType:=ftDate;
Value:=Avalue;
end; end;
Procedure TParam.SetAsDateTime(const AValue: TDateTime); Procedure TParam.SetAsDateTime(const AValue: TDateTime);
begin begin
Value:=AValue;
FDataType:=ftDateTime; FDataType:=ftDateTime;
Value:=AValue;
end; end;
Procedure TParam.SetAsFloat(const AValue: Double); Procedure TParam.SetAsFloat(const AValue: Double);
begin begin
Value:=AValue;
FDataType:=ftFloat; FDataType:=ftFloat;
Value:=AValue;
end; end;
Procedure TParam.SetAsInteger(AValue: Longint); Procedure TParam.SetAsInteger(AValue: Longint);
begin begin
Value:=AValue;
FDataType:=ftInteger; FDataType:=ftInteger;
Value:=AValue;
end; end;
Procedure TParam.SetAsLargeInt(AValue: LargeInt); Procedure TParam.SetAsLargeInt(AValue: LargeInt);
begin begin
Value:=AValue;
FDataType:=ftLargeint; FDataType:=ftLargeint;
Value:=AValue;
end; end;
Procedure TParam.SetAsMemo(const AValue: string); Procedure TParam.SetAsMemo(const AValue: string);
begin begin
Value:=AValue;
FDataType:=ftMemo; FDataType:=ftMemo;
Value:=AValue;
end; end;
Procedure TParam.SetAsSmallInt(AValue: LongInt); Procedure TParam.SetAsSmallInt(AValue: LongInt);
begin begin
Value:=AValue;
FDataType:=ftSmallInt; FDataType:=ftSmallInt;
Value:=AValue;
end; end;
Procedure TParam.SetAsString(const AValue: string); Procedure TParam.SetAsString(const AValue: string);
begin begin
Value:=AValue;
if FDataType <> ftFixedChar then if FDataType <> ftFixedChar then
FDataType := ftString; FDataType := ftString;
Value:=AValue;
end; end;
procedure TParam.SetAsWideString(const aValue: WideString); procedure TParam.SetAsWideString(const aValue: WideString);
begin begin
Value := aValue;
if FDataType <> ftFixedWideChar then if FDataType <> ftFixedWideChar then
FDataType := ftWideString; FDataType := ftWideString;
Value := aValue;
end; end;
Procedure TParam.SetAsTime(const AValue: TDateTime); Procedure TParam.SetAsTime(const AValue: TDateTime);
begin begin
Value:=AValue;
FDataType:=ftTime; FDataType:=ftTime;
Value:=AValue;
end; end;
Procedure TParam.SetAsVariant(const AValue: Variant); Procedure TParam.SetAsVariant(const AValue: Variant);
@ -720,14 +720,14 @@ end;
Procedure TParam.SetAsWord(AValue: LongInt); Procedure TParam.SetAsWord(AValue: LongInt);
begin begin
Value:=AValue;
FDataType:=ftWord; FDataType:=ftWord;
Value:=AValue;
end; end;
procedure TParam.SetAsFMTBCD(const AValue: TBCD); procedure TParam.SetAsFMTBCD(const AValue: TBCD);
begin begin
FValue:=VarFmtBCDCreate(AValue);
FDataType:=ftFMTBcd; FDataType:=ftFMTBcd;
FValue:=VarFmtBCDCreate(AValue);
end; end;
Procedure TParam.SetDataType(AValue: TFieldType); Procedure TParam.SetDataType(AValue: TFieldType);