Icon View Thread

The following is the text of the current message along with any replies.
Messages 1 to 7 of 7 total
Thread Problem with Nan Value into Table
Wed, Aug 27 2008 5:58 AMPermanent Link

Stefano Gattuso
Hello, i am using Dbisam v4 with Delphi. In some way io have generate from my program some
NAN Value into a value. Now each time i try do something with the table i recive an error:
INVALID FLOATING POINT OPERATION.
For resolve that i have removed NAN value and Forced Index Rebild with dbsys. So now all
work fine. But i need do that for like 100 table.
There is a way for remove that?
For example i have find a way to select just NAN value:
 select *  from  tbscontrino  where sconto is NAN;  //no valid sql
 select *  from  tbscontrino  where sconto = NAN;  //no valid sql
 select *  from  tbscontrino  where sconto = 1/0;   //show only null
 select *  from  tbscontrino  where sconto = 0/1;   //invalid floating point operation
 update tbscontrino set sconto =0 where sconto> 100 ;    //invalid floating point operation
I have try with some sql but nothing ..Help me plssss...



Attachments: TBSCONTRINO.rar
Wed, Aug 27 2008 10:37 AMPermanent Link

"Frans van Daalen"

"Stefano Gattuso" <stefano.gattuso@ixorateam.com> wrote in message
news:320EE37B-CB27-4883-9CF4-CBA1CB36549B@news.elevatesoft.com...
> Hello, i am using Dbisam v4 with Delphi. In some way io have generate from
> my program some
> NAN Value into a value. Now each time i try do something with the table i
> recive an error:
> INVALID FLOATING POINT OPERATION.
> For resolve that i have removed NAN value and Forced Index Rebild with
> dbsys. So now all
> work fine. But i need do that for like 100 table.
> There is a way for remove that?
> For example i have find a way to select just NAN value:
>  select *  from  tbscontrino  where sconto is NAN;  //no valid sql
>  select *  from  tbscontrino  where sconto = NAN;  //no valid sql
>  select *  from  tbscontrino  where sconto = 1/0;   //show only null
>  select *  from  tbscontrino  where sconto = 0/1;   //invalid floating
> point operation
>  update tbscontrino set sconto =0 where sconto> 100 ;    //invalid
> floating point operation
> I have try with some sql but nothing ..Help me plssss...
>

euhh....NAN or NULL  ?  Like in select *  from  tbscontrino  where sconto is
NULL

Frans

PS Maybe next time without any attachments? Those can be posted in
public.binaries

Wed, Aug 27 2008 10:49 AMPermanent Link

Stefano Gattuso
NAN !!!!!!!!! ..... i have attach the table for show my problem.
NULL is not a problem.

"Frans van Daalen" <Account@is.invalid> wrote:


"Stefano Gattuso" <stefano.gattuso@ixorateam.com> wrote in message
news:320EE37B-CB27-4883-9CF4-CBA1CB36549B@news.elevatesoft.com...
> Hello, i am using Dbisam v4 with Delphi. In some way io have generate from
> my program some
> NAN Value into a value. Now each time i try do something with the table i
> recive an error:
> INVALID FLOATING POINT OPERATION.
> For resolve that i have removed NAN value and Forced Index Rebild with
> dbsys. So now all
> work fine. But i need do that for like 100 table.
> There is a way for remove that?
> For example i have find a way to select just NAN value:
>  select *  from  tbscontrino  where sconto is NAN;  //no valid sql
>  select *  from  tbscontrino  where sconto = NAN;  //no valid sql
>  select *  from  tbscontrino  where sconto = 1/0;   //show only null
>  select *  from  tbscontrino  where sconto = 0/1;   //invalid floating
> point operation
>  update tbscontrino set sconto =0 where sconto> 100 ;    //invalid
> floating point operation
> I have try with some sql but nothing ..Help me plssss...
>

euhh....NAN or NULL  ?  Like in select *  from  tbscontrino  where sconto is
NULL

Frans

PS Maybe next time without any attachments? Those can be posted in
public.binaries
Wed, Aug 27 2008 11:30 AMPermanent Link

Roy Lambert

NLH Associates

Team Elevate Team Elevate

Stefano

>NAN !!!!!!!!! ..... i have attach the table for show my problem.
>NULL is not a problem.

In that case what is a NAN?

A quick skim with google gives things like
--------------------------------------------------------------------------------------------------------------------
Before MySQL 4.1.2, out-of-range numeric values such as -inf and inf, as well as
NaN (not-a-number) values are dumped by mysqldump as NULL.
-------------------------------------------------------------------------------------------------------------------

Eyeballing your table all of the data in sconto is either a number or blank (ie null) so I have no idea what is meant to be wrong or what you're trying to achieve. To comment on the statements you posted

 select *  from  tbscontrino  where sconto is NAN;  //no valid sql
 select *  from  tbscontrino  where sconto = NAN;  //no valid sql

Neither DBISAM nor ElevateDB have anything called NAN

 select *  from  tbscontrino  where sconto = 1/0;   //show only null
runs fine here (I would have expected it to blow up - division by zero not a good idea)

 select *  from  tbscontrino  where sconto = 0/1;   //invalid floating point operation
runs fine here

 update tbscontrino set sconto =0 where sconto> 100 ;    //invalid floating point operation
runs fine here in DBSys but naturally no rows are altered

Roy Lambert [Team Elevate]
Wed, Aug 27 2008 1:53 PMPermanent Link

Tim Young [Elevate Software]

Elevate Software, Inc.

Avatar

Email timyoung@elevatesoft.com

Stefano,

<< Hello, i am using Dbisam v4 with Delphi. In some way io have generate
from my program some NAN Value into a value. Now each time i try do
something with the table i recive an error: INVALID FLOATING POINT
OPERATION.
For resolve that i have removed NAN value and Forced Index Rebild with
dbsys. So now all work fine. But i need do that for like 100 table. There is
a way for remove that? >>

Per my email response:

The repair facilities in DBISAM do not repair data content issues, only
structural issues.  To fix data content issues, you must make the
modifications yourself.  Populating a table with NAN values is a data
content issue.

--
Tim Young
Elevate Software
www.elevatesoft.com

Wed, Aug 27 2008 11:00 PMPermanent Link

"Don Patrick"
This worked for me in DBISYS if all you want to do is clear the sconto
field.
update tbscontrino set sconto =0 where sconto> 1
or
update tbscontrino set sconto =NULL where sconto> 1

"Stefano Gattuso" <stefano.gattuso@ixorateam.com> wrote in message
news:320EE37B-CB27-4883-9CF4-CBA1CB36549B@news.elevatesoft.com...
>   update tbscontrino set sconto =0 where sconto> 100 ;    //invalid
floating point operation
> I have try with some sql but nothing ..Help me plssss...

Tue, Feb 22 2011 4:48 AMPermanent Link

Joerg Drechsler

I run into the same problem recently. The DBISAM DB accepts NAN values via Delphi programming but does not support the ANSI SQL 92 "IS [NOT] NAN" syntax.

I found that you can work around the IF(... THEN... ELSE...) or WHERE problems resulting from this by using a type CAST to CHAR, like in:

IF( CAST(<fieldname> AS CHAR(3))='NAN'
THEN NULL
ELSE <fieldname>
) AS fieldname

or

SELECT | UPDATE
...
WHERE CAST(<fieldname> AS CHAR(3))='NAN'
Image