class Sequel::TinyTDS::Dataset

Constants

DatasetClass
PreparedStatementMethods

Public Instance Methods

fetch_rows(sql) { |h| ... } click to toggle source

Yield hashes with symbol keys, attempting to optimize for various cases.

# File lib/sequel/adapters/tinytds.rb, line 223
def fetch_rows(sql)
  execute(sql) do |result|
    columns = result.fields.map!{|c| output_identifier(c)}
    if columns.empty?
      args = []
      args << {:timezone=>:utc} if db.timezone == :utc
      cols = nil
      result.each(*args) do |r|
        unless cols
          cols = result.fields.map{|c| [c, output_identifier(c)]}
          self.columns = columns = cols.map(&:last)
        end
        h = {}
        cols.each do |s, sym|
          h[sym] = r[s]
        end
        yield h
      end
    else
      self.columns = columns
      if db.timezone == :utc
        result.each(:timezone=>:utc){|r| yield r}
      else
        result.each{|r| yield r}
      end
    end
  end
  self
end