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, line 13 def execute_dui(sql, opts=OPTS) return super unless @opts[:provider] synchronize(opts[:server]) do |conn| begin log_connection_yield(sql, conn){conn.Execute(sql)} rows_affected_sql = "SELECT @@ROWCOUNT AS AffectedRows" res = log_connection_yield(rows_affected_sql, conn){conn.Execute(rows_affected_sql)} res.getRows.transpose.each{|r| return r.shift} rescue ::WIN32OLERuntimeError => e raise_error(e) end end 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, line 32 def begin_transaction(conn, opts=OPTS) super if @opts[:provider] 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, line 36 def commit_transaction(conn, opts=OPTS) super if @opts[:provider] end
rollback_transaction(conn, opts=OPTS)
click to toggle source
Calls superclass method
# File lib/sequel/adapters/ado/mssql.rb, line 40 def rollback_transaction(conn, opts=OPTS) super if @opts[:provider] end