<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
  <meta content="text/html;charset=x-mac-ce" http-equiv="Content-Type">
</head>
<body bgcolor="#ffffff" text="#000000">
<br>
<blockquote cite="mid:1305026325.26119.14.camel@wsjoost.cnoc.lan"
 type="cite">
  <blockquote type="cite">
    <pre wrap="">or better:
ftFmtBCD: begin
            if P.AsFMTBCD.Precision > 15 then //we are out of REAL range, so we must bind as BLOB
            begin
              s   tr1=BCDTOStrP.AsFMTBCD,SQLFormatSettings);
              checkerror(sqlite3_bind_blob(fstatement,I,pcharstr(str1), length(str1), @freebindstring));
            end
            else
            begin
               d o1=P.AsFloat
              checkerror(sqlite3_bind_double(fstatement,I,do1));
            end;
          end;
    </pre>
  </blockquote>
  <pre wrap=""><!---->
This is wrong. There are some values which can't be written as floats,
but have precision<15. 

  </pre>
</blockquote>
Joost,Ê look at ftBCD, ftCurrency they are also written as floats<br>
So if there is it acceptable, then I would say, that also in this case
is it acceptable, isn't it ?<br>
(I do not say, that it is perfect)<br>
<br>
<blockquote cite="mid:1305026325.26119.14.camel@wsjoost.cnoc.lan"
 type="cite">
  <pre wrap=""><!---->
Can you create a patch which does this?
  </pre>
</blockquote>
Patch is attached.<br>
<br>
DECIMAL -> ftBCD (if precision and scale is not supplied, then
scale=0)<br>
DECIMAL(p) = DECIMAL(p,0) = DECIMAL(p,<nonnumeric>) -> if
p<=18 then ftLargeInt else ftFmtBCD<br>
DECIMAL(p,s) -> if s>4 or p-s>14 then ftFmtBCD (number does
not fit into currency)<br>
<br>
-Laco.<br>
<br>
</body>
</html>