Your problem report has been assigned a tracking id of spr15013.
Please use this id in the subject line of any mail related to
it so that we may better track communication on your inquiry.
Also, please address mail to <franz.com at bugs> as well as me,
so your questions can be answered if I am unavailable.
Hi everybody,
my problem is accessing MS-Access tables from Lisp, through Allegro ODBC,
and, in particular, I have problems with float numbers.
My tables looks like: (only Power is float)
Number Status Power Time
1 1 0 2/8/98
2 0 4.3 2/8/98
if I execute
> (execute-sql "select Number, Status, Power,Time
from FM_Pump_Status_DDG51")
I get
((1 1 0.0 "1998-02-08 00:00:00") (2 0 4.30000019073486 "1998-02-08
00:00:00")) ^^^^^^^^
So I'd like to know what is the junk at the end of 4.3; I'd like to
mention that I do NOT have this problem when I write a float into the DB
thruogh and Update SQL-statement.
The real experts are away at AAAI, so what I say is not definitive.
The junk at the end of that value is characteristic of converting a
single float (4 byte representation) to a double (8 byte
representation). Now, Allegro CL for Windows only supports doubles.
If the value is stored in the database as a single, reading it into
Lisp will cause junk to be added at the end, either because the value
is 0-extended (which does not come out as decimal 0's) or because an
extra 4 bytes was read (or just there) and it contained something.
So, this might be happening because MS Access is working (or set up to
work) with single floats in that slot and ACL is converting it to a
double float. Does that correspond to the reality at your end?
David Margolies
Franz Inc.