Class: Sequel::TinyTDS::Dataset
- Includes:
- MSSQL::DatasetMethods
- Defined in:
- lib/sequel/adapters/tinytds.rb
Defined Under Namespace
Modules: ArgumentMapper
Constant Summary collapse
- PreparedStatementMethods =
prepared_statements_module("sql = prepared_sql; opts = Hash[opts]; opts[:arguments] = bind_arguments", ArgumentMapper)
Constants included from MSSQL::DatasetMethods
MSSQL::DatasetMethods::CONSTANT_MAP, MSSQL::DatasetMethods::EXTRACT_MAP, MSSQL::DatasetMethods::LIMIT_ALL
Instance Method Summary collapse
Methods included from MSSQL::DatasetMethods
#complex_expression_sql_append, #constant_sql_append, #count, #cross_apply, #disable_insert_output, #empty?, #escape_like, #full_text_search, #insert_select, #insert_select_sql, #into, #mssql_unicode_strings, #nolock, #outer_apply, #output, #quoted_identifier_append, #returning, #select_sql, #server_version, #supports_cte?, #supports_group_cube?, #supports_group_rollup?, #supports_grouping_sets?, #supports_insert_select?, #supports_intersect_except?, #supports_is_true?, #supports_join_using?, #supports_merge?, #supports_modifying_joins?, #supports_multiple_column_in?, #supports_nowait?, #supports_offsets_in_correlated_subqueries?, #supports_output_clause?, #supports_returning?, #supports_skip_locked?, #supports_where_true?, #supports_window_functions?, #with_mssql_unicode_strings, #with_ties
Methods included from EmulateOffsetWithRowNumber
#empty?, #select_sql, #supports_offsets_in_correlated_subqueries?
Instance Method Details
#fetch_rows(sql) ⇒ Object
214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 |
# File 'lib/sequel/adapters/tinytds.rb', line 214 def fetch_rows(sql) execute(sql) do |result| # Mutating an array in the result is questionable, but supported # by tiny_tds developers (tiny_tds issue #57) 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 |