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.