trig errors

trig errors

am 30.01.2008 17:34:58 von Daft Pict

Greetings,
I am getting a data conversion error I cannot explain!

This statement

UPDATE dbImageList
set cx = COS(RADIANS(CRVAL2))*COS(RADIANS(CRVAL1)),
cy = COS(RADIANS(CRVAL2))SIN(RADIANS(CRVAL1)),
cz = SIN(RADIANS(CRVAL2))

results in this error message
Msg 8115, Level 16, State 2, Line 1
Arithmetic overflow error converting expression to data type float.
The statement has been terminated.


However, all fields crval1,crval2,cx,cy,cz are datatype float in the
table.

Any suggestions on how to perform this computation?
Thanks
-Brian

Re: trig errors

am 30.01.2008 23:48:22 von Erland Sommarskog

Daft Pict (brianjmclean@gmail.com) writes:
> Greetings,
> I am getting a data conversion error I cannot explain!
>
> This statement
>
> UPDATE dbImageList
> set cx = COS(RADIANS(CRVAL2))*COS(RADIANS(CRVAL1)),
> cy = COS(RADIANS(CRVAL2))SIN(RADIANS(CRVAL1)),
> cz = SIN(RADIANS(CRVAL2))
>
> results in this error message
> Msg 8115, Level 16, State 2, Line 1
> Arithmetic overflow error converting expression to data type float.
> The statement has been terminated.
>
>
> However, all fields crval1,crval2,cx,cy,cz are datatype float in the
> table.
>
> Any suggestions on how to perform this computation?

I would certainly help if you could post a script that demonstrates
the problem. That is, the script would include the CREATE TABLE statement
for the table, and INSERT statements for data that causes this problem.

Else we are left a bit in the dark.


--
Erland Sommarskog, SQL Server MVP, esquel@sommarskog.se

Books Online for SQL Server 2005 at
http://www.microsoft.com/technet/prodtechnol/sql/2005/downlo ads/books.mspx
Books Online for SQL Server 2000 at
http://www.microsoft.com/sql/prodinfo/previousversions/books .mspx

Re: trig errors

am 31.01.2008 05:18:22 von Ed Murphy

Daft Pict wrote:

> Greetings,
> I am getting a data conversion error I cannot explain!
>
> This statement
>
> UPDATE dbImageList
> set cx = COS(RADIANS(CRVAL2))*COS(RADIANS(CRVAL1)),
> cy = COS(RADIANS(CRVAL2))SIN(RADIANS(CRVAL1)),

There's a missing * here; is that typo in your actual code, or did it
just sneak in when you wrote your post?

> cz = SIN(RADIANS(CRVAL2))
>
> results in this error message
> Msg 8115, Level 16, State 2, Line 1
> Arithmetic overflow error converting expression to data type float.
> The statement has been terminated.
>
>
> However, all fields crval1,crval2,cx,cy,cz are datatype float in the
> table.
>
> Any suggestions on how to perform this computation?

First try it with a WHERE clause that limits it to a single row of the
table. If that succeeds, then do a few binary chops to determine which
rows do or don't have problems.