Sha256: 0da700fda2b65ed22aaf6c98f87ab50395a53addcbabb34fff46e6ee4f0ea143

Contents?: true

Size: 1.69 KB

Versions: 16

Compression:

Stored size: 1.69 KB

Contents

Sequel.require 'adapters/shared/oracle'

module Sequel
  module JDBC
    # Database and Dataset support for Oracle databases accessed via JDBC.
    module Oracle
      # Instance methods for Oracle Database objects accessed via JDBC.
      module DatabaseMethods
        include Sequel::Oracle::DatabaseMethods
        TRANSACTION_BEGIN = 'Transaction.begin'.freeze
        TRANSACTION_COMMIT = 'Transaction.commit'.freeze
        TRANSACTION_ROLLBACK = 'Transaction.rollback'.freeze
        
        # Return Sequel::JDBC::Oracle::Dataset object with the given opts.
        def dataset(opts=nil)
          Sequel::JDBC::Oracle::Dataset.new(self, opts)
        end
        
        private
        
        # Use JDBC connection's setAutoCommit to false to start transactions
        def begin_transaction(conn, opts={})
          log_yield(TRANSACTION_BEGIN){conn.setAutoCommit(false)}
          conn
        end
        
        # Use JDBC connection's commit method to commit transactions
        def commit_transaction(conn, opts={})
          log_yield(TRANSACTION_COMMIT){conn.commit}
        end
        
        # Use JDBC connection's setAutoCommit to true to enable non-transactional behavior
        def remove_transaction(conn)
          conn.setAutoCommit(true) if conn
          @transactions.delete(Thread.current)
        end
        
        # Use JDBC connection's rollback method to rollback transactions
        def rollback_transaction(conn, opts={})
          log_yield(TRANSACTION_ROLLBACK){conn.rollback}
        end
      end
      
      # Dataset class for Oracle datasets accessed via JDBC.
      class Dataset < JDBC::Dataset
        include Sequel::Oracle::DatasetMethods
      end
    end
  end
end

Version data entries

16 entries across 16 versions & 1 rubygems

Version Path
sequel-3.27.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.26.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.25.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.24.1 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.24.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.23.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.22.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.21.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.20.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.19.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.18.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.17.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.16.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.15.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.14.0 lib/sequel/adapters/jdbc/oracle.rb
sequel-3.13.0 lib/sequel/adapters/jdbc/oracle.rb