cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

SQL Anywhere 17: Data value could not be converted

Former Member
0 Likes
3,729

Hi,

I am connecting to a SQL Anywhere 17 database using the oledb provider SAOLEDB. I am using vb.net (2005) and can create a connection, read, write and execute stored procedures. But it seems that there are some issues with some of the datatypes being retrieved.

  1. When we ran a select statement to get a GUID, it returned null in vb.net using oledb: SELECT newid() Then when I cast it, then the value came through. SELECT CAST(newid() AS VARCHAR(255))

  2. When we ran a select statement which returned 2 time fields: Select SessionID, StartTime, EndTime from MySession It returned the message as an error: "The data value could not be converted for reasons other than sign mismatch or data overflow. For example, the data was corrupted in the data store but the row was still retrievable." Again CAST fixes this problem.

We have upgraded SQL Anywhere from 10 to 17 and have started getting these errors.

I appreciate that dotnet 2005 is old, have these datatypes changed? Apart from CAST or turning off CONVERSION_ERROR is there anything else I might be able to do?

Thanks Sully

View Entire Topic
jack_schueler
Product and Topic Expert
Product and Topic Expert

I tried executing "select newid()" using a test script and it worked fine. Did not need to use any special options.

cscript test.vbs -q "select newid()"

Microsoft (R) Windows Script Host Version 5.8
Copyright (C) Microsoft Corporation. All rights reserved.

newid()
{CA760185-54F4-4A05-9F81-E43D9D10D8DB}
rowCount = 1