def do_query (&block)

      q = prepare_query(&block)
      rs = q.run

      return rs

    ensure
      q && q.free
    end
def do_query (&block)

      q = prepare_query(&block)
      rs = q.run

      return rs

    ensure
      q && q.free
    end
Prepares and runs a query, returns a ResultSet instance
 (takes care of freeing the query structure)