From f16b45b0dcdc51f835407a7ef613c046a6b684a2 Mon Sep 17 00:00:00 2001 From: wbond Date: Mon, 5 May 2014 16:59:00 -0400 Subject: [PATCH] Fixed select_rows() to actual support binds via do_exec_query() --- .../sqlserver/database_statements.rb | 12 +++++++++--- 1 file changed, 9 insertions(+), 3 deletions(-) diff --git a/lib/active_record/connection_adapters/sqlserver/database_statements.rb b/lib/active_record/connection_adapters/sqlserver/database_statements.rb index 43d278e50..35a74ae3c 100644 --- a/lib/active_record/connection_adapters/sqlserver/database_statements.rb +++ b/lib/active_record/connection_adapters/sqlserver/database_statements.rb @@ -4,7 +4,7 @@ module Sqlserver module DatabaseStatements def select_rows(sql, name = nil, binds = []) - raw_select sql, name, binds, fetch: :rows + do_exec_query sql, name, binds, fetch: :rows end def execute(sql, name = nil) @@ -327,7 +327,13 @@ def do_execute(sql, name = 'SQL') end end - def do_exec_query(sql, name, binds) + def do_exec_query(sql, name, binds, options = {}) + # This allows non-AR code to utilize the binds + # handling code, e.g. select_rows() + if options[:fetch] != :rows + options[:ar_result] = true + end + explaining = name == 'EXPLAIN' names_and_types = [] params = [] @@ -358,7 +364,7 @@ def do_exec_query(sql, name, binds) sql = "EXEC sp_executesql #{quote(sql)}" sql << ", #{quote(names_and_types.join(', '))}, #{params.join(', ')}" unless binds.empty? end - raw_select sql, name, binds, ar_result: true + raw_select sql, name, binds, options end def raw_connection_do(sql)