Class Sequel::TinyTDS::Dataset
In: lib/sequel/adapters/tinytds.rb
Parent: Sequel::Dataset

Methods

Included Modules

Sequel::MSSQL::DatasetMethods

Classes and Modules

Module Sequel::TinyTDS::Dataset::ArgumentMapper

Constants

DatasetClass = self
PreparedStatementMethods = prepared_statements_module("sql = prepared_sql; opts = Hash[opts]; opts[:arguments] = bind_arguments", ArgumentMapper)

Public Instance methods

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

[Source]

     # 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.

[Source]

     # 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

[Validate]