Class | Sequel::TinyTDS::Dataset |
In: |
lib/sequel/adapters/tinytds.rb
|
Parent: | Sequel::Dataset |
PreparedStatementMethods | = | prepared_statements_module("sql = prepared_sql; opts = Hash[opts]; opts[:arguments] = bind_arguments", ArgumentMapper) |
# File lib/sequel/adapters/tinytds.rb, line 206 206: def fetch_rows(sql) 207: execute(sql) do |result| 208: # Mutating an array in the result is questionable, but supported 209: # by tiny_tds developers (tiny_tds issue #57) 210: columns = result.fields.map!{|c| output_identifier(c)} 211: if columns.empty? 212: args = [] 213: args << {:timezone=>:utc} if db.timezone == :utc 214: cols = nil 215: result.each(*args) do |r| 216: unless cols 217: cols = result.fields.map{|c| [c, output_identifier(c)]} 218: self.columns = columns = cols.map(&:last) 219: end 220: h = {} 221: cols.each do |s, sym| 222: h[sym] = r[s] 223: end 224: yield h 225: end 226: else 227: self.columns = columns 228: if db.timezone == :utc 229: result.each(:timezone=>:utc){|r| yield r} 230: else 231: result.each{|r| yield r} 232: end 233: end 234: end 235: self 236: end