On Sun, Jun 27, 2010 at 07:04:17PM +0100, Simon Slavin scratched on the wall:

> But you should know that SQLite itself does not understand locales
> at all.  It wants a ',' for decimals input and produces a '.' in
> output.  If you have some aspect of your system which is 
> handling ',', it's not part of SQLite.

  SQLite does not accept "," for decimals.  As you said yourself,
  SQLite does not understand locales.  Further, the only radix point it
  understands is ".":

  http://www.sqlite.org/lang_expr.html

    Literal Values

    A literal value is a constant of some kind. Literal values may be
    integers, floating point numbers, strings, BLOBs, or NULLs.
    Scientific notation is supported for floating point literal values.
    The "." character is always used as the decimal point even if the
    locale setting specifies "," for this role - the use of "," for the
    decimal point would result in syntactic ambiguity.  [...]


  In specific, there is no way to tell if something like "4,5" is the
  value four and one-half, or a two element list consisting of the
  integers 4 and 5.  Given how frequently SQL uses implied lists,
  this is a big issue for the parser.

  Make sure your application is not locale aware.  This isn't likely to
  make a difference on input, but it can on output.  Further, make sure
  you're actually putting floating-point values into the database, and
  not a string that might be converted (in the case of the functions)
  but given raw in the case of just returning a raw column.  For
  example:

    SELECT X, typeof( X ) FROM MY_POINTS;



   -j

-- 
Jay A. Kreibich < J A Y  @  K R E I B I.C H >

"Intelligence is like underwear: it is important that you have it,
 but showing it to the wrong people has the tendency to make them
 feel uncomfortable." -- Angela Johnson
_______________________________________________
sqlite-users mailing list
sqlite-users@sqlite.org
http://sqlite.org:8080/cgi-bin/mailman/listinfo/sqlite-users

Reply via email to