diff options
author | David Heinemeier Hansson <david@loudthinking.com> | 2006-08-05 21:18:12 +0000 |
---|---|---|
committer | David Heinemeier Hansson <david@loudthinking.com> | 2006-08-05 21:18:12 +0000 |
commit | 5779deb88d3dae9658cdd508dbde079acd68c2fb (patch) | |
tree | 8694d839700008da729ff774d9fb5012317afa83 /activerecord/lib/active_record | |
parent | c99df461f45c514d434a6f0bcb368320b71fd0c8 (diff) | |
download | rails-5779deb88d3dae9658cdd508dbde079acd68c2fb.tar.gz rails-5779deb88d3dae9658cdd508dbde079acd68c2fb.tar.bz2 rails-5779deb88d3dae9658cdd508dbde079acd68c2fb.zip |
Refactored select routing for SQL Server adapter (closes #5683) [tom@popdog.net]
git-svn-id: http://svn-commit.rubyonrails.org/rails/trunk@4671 5ecf4fe2-1ee6-0310-87b1-e25e094e27de
Diffstat (limited to 'activerecord/lib/active_record')
-rw-r--r-- | activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb | 22 |
1 files changed, 11 insertions, 11 deletions
diff --git a/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb b/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb index 341a388121..a19da5a545 100644 --- a/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb +++ b/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb @@ -504,22 +504,22 @@ module ActiveRecord private def select(sql, name = nil) - rows = [] repair_special_columns(sql) - log(sql, name) do - @connection.select_all(sql) do |row| - record = {} - row.column_names.each do |col| - record[col] = row[col] - if record[col].is_a? DBI::Timestamp - ts = record[col] - record[col] = DateTime.new(ts.year, ts.month, ts.day, ts.hour, ts.minute, ts.sec) + + result = [] + execute(sql) do |handle| + handle.each do |row| + row_hash = {} + row.each_with_index do |value, i| + if value.is_a? DBI::Timestamp + value = DateTime.new(value.year, value.month, value.day, value.hour, value.minute, value.sec) end + row_hash[handle.column_names[i]] = value end - rows << record + result << row_hash end end - rows + result end # Turns IDENTITY_INSERT ON for table during execution of the block |