class Sequel::ADO::Dataset
Public Instance Methods
fetch_rows(sql) { |h| ... }
click to toggle source
# File lib/sequel/adapters/ado.rb, line 231 def fetch_rows(sql) execute(sql) do |recordset| cols = [] conversion_procs = db.conversion_procs ts_cp = nil recordset.Fields.each do |field| type = field.Type cp = if type == AdDBTimeStamp ts_cp ||= begin nsec_div = 1000000000.0/(10**(timestamp_precision)) nsec_mul = 10**(timestamp_precision+3) meth = db.method(:to_application_timestamp) lambda do |v| # Fractional second handling is not correct on ruby <2.2 meth.call([v.year, v.month, v.day, v.hour, v.min, v.sec, (v.nsec/nsec_div).round * nsec_mul]) end end else conversion_procs[type] end cols << [output_identifier(field.Name), cp] end self.columns = cols.map(&:first) return if recordset.EOF max = cols.length recordset.GetRows.transpose.each do |field_values| h = {} i = -1 while (i += 1) < max name, cp = cols[i] h[name] = if (v = field_values[i]) && cp cp.call(v) else v end end yield h end end end
provides_accurate_rows_matched?()
click to toggle source
ADO can return for for delete and update statements, depending on the provider.
# File lib/sequel/adapters/ado.rb, line 278 def provides_accurate_rows_matched? false end