ViewVC Help
View File | Revision Log | Show Annotations | Download File | View Changeset | Root Listing
root/public/ibx/branches/udr/client/FBArray.pas
(Generate patch)

Comparing ibx/branches/udr/client/FBArray.pas (file contents):
Revision 380 by tony, Mon Jan 10 10:08:03 2022 UTC vs.
Revision 381 by tony, Sat Jan 15 00:06:22 2022 UTC

# Line 474 | Line 474 | begin
474      PSingle(SQLData)^ := Value;
475    SQL_SHORT:
476      if Scale < 0 then
477 <      PShort(SQLData)^ := SafeSmallInt(NewNumeric(Value,Scale).getRawValue)
477 >      PShort(SQLData)^ := SafeSmallInt(DoubleToNumeric(Value).AdjustScaleTo(Scale).getRawValue)
478      else
479        IBError(ibxeInvalidDataConversion, [nil]);
480    SQL_LONG:
481      if Scale < 0 then
482 <      PLong(SQLData)^ := SafeInteger(NewNumeric(Value,Scale).getRawValue)
482 >      PLong(SQLData)^ := SafeInteger(DoubleToNumeric(Value).AdjustScaleTo(Scale).getRawValue)
483      else
484        IBError(ibxeInvalidDataConversion, [nil]);
485    SQL_INT64:
486      if Scale < 0 then
487 <      PInt64(SQLData)^ := NewNumeric(Value,Scale).getRawValue
487 >      PInt64(SQLData)^ := DoubleToNumeric(Value).AdjustScaleTo(Scale).getRawValue
488      else
489        IBError(ibxeInvalidDataConversion, [nil]);
490    SQL_TEXT, SQL_VARYING:
# Line 510 | Line 510 | begin
510      if Scale = -4 then
511        PCurrency(SQLData)^ := Value
512      else
513 <      PInt64(SQLData)^ := NewNumeric(Value).clone(Scale).getRawValue;
513 >      PInt64(SQLData)^ := CurrToNumeric(Value).AdjustScaleTo(Scale).getRawValue;
514      Changed;
515    end
516   end;
# Line 543 | Line 543 | begin
543    CheckActive;
544    case GetSQLType of
545    SQL_LONG:
546 <      PLong(SQLData)^ := SafeInteger(Value.clone(Scale).getRawValue);
546 >      PLong(SQLData)^ := SafeInteger(Value.AdjustScaleTo(Scale).getRawValue);
547    SQL_SHORT:
548 <    PShort(SQLData)^ := SafeSmallInt(Value.clone(Scale).getRawValue);
548 >    PShort(SQLData)^ := SafeSmallInt(Value.AdjustScaleTo(Scale).getRawValue);
549    SQL_INT64:
550 <    PInt64(SQLData)^ := Value.clone(Scale).getRawValue;
550 >    PInt64(SQLData)^ := Value.AdjustScaleTo(Scale).getRawValue;
551    SQL_TEXT, SQL_VARYING:
552     SetAsString(Value.getAsString);
553    SQL_D_FLOAT,

Diff Legend

Removed lines
+ Added lines
< Changed lines
> Changed lines