Getting first value of a mysql return

hi list -

cant find any decent mysql/ruby usage examples, any suggestions? even
the dave thomas book has very little...

i have a sql statement which sometimes returns a single value, and
sometimes it cant find a matching result.

how do i trap this nothing value? it doesnt seem to be a "nil" : the
return type is always:
MySql::Result

which is not a hash, so i cant get the keys or count() or anything...

puts res.class
          # Mysql::Result

itemCount = res.keys.length
                #> NoMethodError: undefined method 'keys' for #

if ( res.nil? ) // never is tho...

···

--
also how do i extrac the first and only result? eg if the result is
not a list of items, but just reding the value of one field?

tx!

--
-------------------------------------------
      David "DC" Collier
mailto:dc@pikkle.com
      +81 (0)80 6521 9559
      skype: callto://d3ntaku
-------------------------------------------
      Pikkle 株式会社
      http://www.pikkle.com
-------------------------------------------

That's the usual way DB interfaces handle this. You always get a result - but it may be empty. You can either iterate all result rows and notice that you do not have any result that way. Or you can maybe try #empty? on the result.

Kind regards

    robert

···

dc <lister@pikkle.com> wrote:

hi list -

cant find any decent mysql/ruby usage examples, any suggestions? even
the dave thomas book has very little...

i have a sql statement which sometimes returns a single value, and
sometimes it cant find a matching result.

how do i trap this nothing value? it doesnt seem to be a "nil" : the
return type is always:
MySql::Result

Robert Klemme wrote:

···

dc <lister@pikkle.com> wrote:
> hi list -
>
> cant find any decent mysql/ruby usage examples, any suggestions? even
> the dave thomas book has very little...
>
> i have a sql statement which sometimes returns a single value, and
> sometimes it cant find a matching result.
>
> how do i trap this nothing value? it doesnt seem to be a "nil" : the
> return type is always:
> MySql::Result

That's the usual way DB interfaces handle this. You always get a result -
but it may be empty. You can either iterate all result rows and notice that
you do not have any result that way. Or you can maybe try #empty? on the
result.

Kind regards

    robert

Yep, try #num_rows on the result (I had a look at mysql.rb in rails)

Cheers,
Andy