Hi Joost,
it seems, that you have started applying patch in
http://bugs.freepascal.org/view.php?id=18160 or
http://bugs.freepascal.org/view.php?id=16924
Great!
I have some comments, ideas, please consider them.
Because in mean time was enhanced FmtBCD unit you can remove some
commented lines in fields.inc
1. VarFMTBcdCreate() should already work, so:
2447- Result := BCDToDouble(bcd)//remove when complete
variant support in fmtbcd.pp will be implemented
2448- //Result := VarFMTBcdCreate(bcd) //later invalid
variant type cast ?
2448+ Result := VarFMTBcdCreate(bcd)
2. VarToBCD() is already implemented, so:
2548 procedure TFMTBCDField.SetVarValue(const AValue: Variant);
2549- var E:double;
2550 begin
2551- E:=AValue;
2552- SetAsBCD(DoubleToBCD(E));//remove when VarToBCD in
fmtbcd.pp will be implemented
2553- //SetAsBCD(VarToBCD(AValue));
2553+ SetAsBCD(VarToBCD(AValue));
2554 end;
3. BCDToStrF there is waiting patch
http://bugs.freepascal.org/view.php?id=18388 if applied, then also can
be removed comments in procedure TFMTBCDField.GetText
4. Add 3th parameter to TryStrToBCD( const aValue : FmtBCDStringtype;
var BCD : tBCD; DecimalSeparator : char = #0) : Boolean;
so we can supply directly decimal separator '.' used in SQL and to avoid
saving existing, set '.' and then restoring ...
http://svn.freepascal.org/cgi-bin/viewvc.cgi/trunk/packages/fcl-db/src/sqldb/sqlite/sqlite3conn.pp?r1=16948&r2=16954
(like TryStrToDate, TryStrToTime)
or
add overloaded TryStrToBCD( const aValue : FmtBCDStringtype; var BCD :
tBCD; FormatSettings : TFormatSettings) : Boolean;
(like TryStrToFloat)
Thanks
Laco.
_______________________________________________
fpc-devel maillist - fpc-devel@lists.freepascal.org
http://lists.freepascal.org/mailman/listinfo/fpc-devel