aboutsummaryrefslogtreecommitdiffstats
path: root/activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb
diff options
context:
space:
mode:
authorDavid Heinemeier Hansson <david@loudthinking.com>2006-08-05 21:18:12 +0000
committerDavid Heinemeier Hansson <david@loudthinking.com>2006-08-05 21:18:12 +0000
commit5779deb88d3dae9658cdd508dbde079acd68c2fb (patch)
tree8694d839700008da729ff774d9fb5012317afa83 /activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb
parentc99df461f45c514d434a6f0bcb368320b71fd0c8 (diff)
downloadrails-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/connection_adapters/sqlserver_adapter.rb')
-rw-r--r--activerecord/lib/active_record/connection_adapters/sqlserver_adapter.rb22
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