module Sequel::ADO::MSSQL::DatabaseMethods
Public Instance Methods
execute_dui(sql, opts=OPTS)
click to toggle source
Issue a separate query to get the rows modified. ADO
appears to use pass by reference with an integer variable, which is not supported directly in ruby, and I'm not aware of a workaround.
Calls superclass method
# File lib/sequel/adapters/ado/mssql.rb 13 def execute_dui(sql, opts=OPTS) 14 return super unless @opts[:provider] 15 synchronize(opts[:server]) do |conn| 16 begin 17 log_connection_yield(sql, conn){conn.Execute(sql)} 18 rows_affected_sql = "SELECT @@ROWCOUNT AS AffectedRows" 19 res = log_connection_yield(rows_affected_sql, conn){conn.Execute(rows_affected_sql)} 20 res.getRows.transpose.each{|r| return r.shift} 21 rescue ::WIN32OLERuntimeError => e 22 raise_error(e) 23 end 24 end 25 end
Private Instance Methods
begin_transaction(conn, opts=OPTS)
click to toggle source
The ADO
adapter's default provider doesn't support transactions, since it creates a new native connection for each query. So Sequel
only attempts to use transactions if an explicit :provider is given.
Calls superclass method
# File lib/sequel/adapters/ado/mssql.rb 32 def begin_transaction(conn, opts=OPTS) 33 super if @opts[:provider] 34 end
commit_transaction(conn, opts=OPTS)
click to toggle source
Calls superclass method
Sequel::MSSQL::DatabaseMethods#commit_transaction
# File lib/sequel/adapters/ado/mssql.rb 36 def commit_transaction(conn, opts=OPTS) 37 super if @opts[:provider] 38 end
rollback_transaction(conn, opts=OPTS)
click to toggle source
Calls superclass method
# File lib/sequel/adapters/ado/mssql.rb 40 def rollback_transaction(conn, opts=OPTS) 41 super if @opts[:provider] 42 end