class Sequel::SqlAnywhere::Dataset

  1. lib/sequel/adapters/sqlanywhere.rb
Superclass: Dataset

Methods

Public Instance

  1. fetch_rows

Public Instance methods

fetch_rows(sql)
[show source]
    # File lib/sequel/adapters/sqlanywhere.rb
155 def fetch_rows(sql)
156   db = @db
157   cps = db.conversion_procs
158   api = db.api
159   execute(sql) do |rs|
160     convert = convert_smallint_to_bool
161     col_infos = []
162     api.sqlany_num_cols(rs).times do |i|
163       _, _, name, _, type = api.sqlany_get_column_info(rs, i)
164       cp = if type == 500
165         cps[500] if convert
166       else
167         cps[type]
168       end
169       col_infos << [output_identifier(name), cp]
170     end
171 
172     self.columns = col_infos.map(&:first)
173     max = col_infos.length
174 
175     if rs
176       while api.sqlany_fetch_next(rs) == 1
177         i = -1
178         h = {}
179         while (i+=1) < max
180           name, cp = col_infos[i]
181           v = api.sqlany_get_column(rs, i)[1]
182           h[name] = cp && v ? cp.call(v) : v
183         end
184         yield h
185       end
186     end
187   end
188   self
189 end