This week's book giveaway is in the Servlets forum.
We're giving away four copies of Murach's Java Servlets and JSP and have Joel Murach on-line!
See this thread for details.
The moose likes Groovy and the fly likes groovy sql confusion Big Moose Saloon
  Search | Java FAQ | Recent Topics | Flagged Topics | Hot Topics | Zero Replies
Register / Login


Win a copy of Murach's Java Servlets and JSP this week in the Servlets forum!
JavaRanch » Java Forums » Languages » Groovy
Bookmark "groovy sql confusion" Watch "groovy sql confusion" New topic
Author

groovy sql confusion

Dave Brown
Ranch Hand

Joined: Mar 08, 2005
Posts: 301
Hi All,

Curious as to whether anyone has seen this issue before or can at least tell me why its happening.

I have a sql query being executed in a groovy Service class which returns 3 columns. When I execute the identical query within mysql I get the results I expect, however in my app, the 3rd column somehow is being returned as an array and not a float/double.

I am always expecting only one row, so the code in my app is :

def sql = new Sql(dataSource)
def row = sql.firstRow(query)

where query is :

String query =
"SELECT "+
" MAX(cl.good) - MIN(cl.good) as 'good'," +
" MAX(cl.bad) - MIN(cl.bad) as 'poor', " +
"(MAX(cl.bad) - MIN(cl.bad)) / (MAX(cl.good) - MIN(cl.good)) * 100 as ratio "+
"FROM logs cl "+
"WHERE cl.id = " + id + " AND cl.date_created > (NOW() - INTERVAL 1 hour)"

an example of the results in the app (from a println) is
row = [good:59768255, poor:4113235, ratio:[54, 46, 56, 56, 50, 48]]

whereas the same in mysql is

good poor ratio
59768255 4113235 6.8820

it looks like ratio is coming back as a char array and not just the value

Has anyone else seen this before ?

Thanks

Dave


Regards, Dave Brown
SCJP 6 - [url]http://www.dbws.net/[/url] - Check out Grails Forum
Dave Brown
Ranch Hand

Joined: Mar 08, 2005
Posts: 301
Further to the behaviour above, it can easily be replicated with a an ever so simple query such as :



which will output ["floatValue":[51, 46, 50, 51, 50, 51]]

So I still don't understand why it returns a byte array rather than a float or a double but the way around I've used is just to create a new String() based on the column, as ultimately I needed a string anyway, e.g.

new String(row.floatValue)

Rgds,
 
I agree. Here's the link: http://aspose.com/file-tools
 
subject: groovy sql confusion
 
Similar Threads
Returning A List Of Variables From A Folder Of Documents And Returning Them Into A New Document
groovy SQL
Read a File and list the record from DB using Groovy
Need advice on structuring pagination
MultiDimenaional Array sort