Very strange error 25955 on specific WM device

We are getting an extremely strange SQL CE error 25955 when running some queries on a specific Windows Mobile 5 device in a .NET CF2 application. The app has been tested on a wide range of devices (both WM5 and WM2003), but this error only happens on one of them (details follow).

Error details (SqlServerCeException)
NativeError = 25955
Message = "Unknown error [ float,numeric ]"
(HResult = -2147467259)
SQLCE books online say:token:SSCE_M_QP_BAD_BOOL_OP_TYPE,description:The data type is not valid for the Boolean operation.,string parameters:Data type (if known), Data type (if known)

Query details

The following query text fails:
Code Snippet

select X, Y, Z from TableName where KeyValue1 = 79.3 and KeyValue2 = 0

This one works (note the absence of decimal):
Code Snippet

select X, Y, Z from TableName where KeyValue1 = 70 and KeyValue2 = 0


DB table details
Column types: X, Y, Z and KeyValue1 are float, KeyValue2 is bit
Composite PK on columns KeyValue1 and KeyValue2

So it seems the SQLCE query processor has trouble matching 79.3 with the float type column, considering the value to be a numeric instead... while that works perfectly on every tested device except this one.

Device model: Mio DigiWalker A701 (WM5 with phone - other tested WM5 devices with phone do work fine)
SQL version: SQL CE 3

Anyone with an idea/suggestion will be most welcome.
Thanks in advance!

simon

[2053 byte] By [s_on_g987] at [2008-1-10]
# 1

Different regional settings ?

ErikEJ at 2007-10-3 > top of Msdn Tech,SQL Server,SQL Server Compact Edition...
# 2
Thanks for the suggestion. We thought of that, but changing the device's regional settings makes no difference (plus the other devices do work with the exact same settings), and the code takes care of using the invariant culture when querying the DB anyway. Besides, I'm not sure how that could cause SQL CE to mistake a float for a numeric (as suggested by the error message).

Any other thoughts?

s_on_g987 at 2007-10-3 > top of Msdn Tech,SQL Server,SQL Server Compact Edition...
# 3

Hmmmm. Have you tried this:

Code Snippet

select X, Y, Z from TableName where KeyValue1 = CONVERT(float, 79.3) and KeyValue2 = 0

(this should work on the other devices as well)

ErikEJ at 2007-10-3 > top of Msdn Tech,SQL Server,SQL Server Compact Edition...

SQL Server

Site Classified