Class | Sequel::TinyTDS::Dataset |
In: |
lib/sequel/adapters/tinytds.rb
|
Parent: | Sequel::Dataset |
DatasetClass | = | self |
PreparedStatementMethods | = | prepared_statements_module("sql = prepared_sql; opts = Hash[opts]; opts[:arguments] = bind_arguments", ArgumentMapper) |
Yield hashes with symbol keys, attempting to optimize for various cases.
# File lib/sequel/adapters/tinytds.rb, line 216 216: def fetch_rows(sql) 217: execute(sql) do |result| 218: columns = result.fields.map!{|c| output_identifier(c)} 219: if columns.empty? 220: args = [] 221: args << {:timezone=>:utc} if db.timezone == :utc 222: cols = nil 223: result.each(*args) do |r| 224: unless cols 225: cols = result.fields.map{|c| [c, output_identifier(c)]} 226: self.columns = columns = cols.map(&:last) 227: end 228: h = {} 229: cols.each do |s, sym| 230: h[sym] = r[s] 231: end 232: yield h 233: end 234: else 235: self.columns = columns 236: if db.timezone == :utc 237: result.each(:timezone=>:utc){|r| yield r} 238: else 239: result.each{|r| yield r} 240: end 241: end 242: end 243: self 244: end
Create a named prepared statement that is stored in the database (and connection) for reuse.
# File lib/sequel/adapters/tinytds.rb, line 248 248: def prepare(type, name=nil, *values) 249: ps = to_prepared_statement(type, values) 250: ps.extend(PreparedStatementMethods) 251: if name 252: ps.prepared_statement_name = name 253: db.set_prepared_statement(name, ps) 254: end 255: ps 256: end