Sha256: f3b567bb3a2e43cb62f2cddc1107ff310c42a4a6db3be50c9cbea167dc8e66c2

Contents?: true

Size: 1.39 KB

Versions: 20

Compression:

Stored size: 1.39 KB

Contents

Sequel.require 'adapters/shared/mssql'

module Sequel
  module JDBC
    class Database
      # Alias the generic JDBC version so it can be called directly later
      alias jdbc_schema_parse_table schema_parse_table
    end
    
    # Database and Dataset instance methods for MSSQL specific
    # support via JDBC.
    module MSSQL
      # Database instance methods for MSSQL databases accessed via JDBC.
      module DatabaseMethods
        PRIMARY_KEY_INDEX_RE = /\Apk__/i.freeze
        ATAT_IDENTITY = 'SELECT @@IDENTITY'.freeze
        SCOPE_IDENTITY = 'SELECT SCOPE_IDENTITY()'.freeze
        
        include Sequel::MSSQL::DatabaseMethods
        
        private
        
        # Get the last inserted id using SCOPE_IDENTITY().
        def last_insert_id(conn, opts={})
          statement(conn) do |stmt|
            sql = opts[:prepared] ? ATAT_IDENTITY : SCOPE_IDENTITY
            rs = log_yield(sql){stmt.executeQuery(sql)}
            rs.next
            rs.getInt(1)
          end
        end
        
        # Call the generic JDBC version instead of MSSQL version,
        # since the JDBC version handles primary keys.
        def schema_parse_table(table, opts={})
          jdbc_schema_parse_table(table, opts)
        end
        
        # Primary key indexes appear to start with pk__ on MSSQL
        def primary_key_index_re
          PRIMARY_KEY_INDEX_RE
        end
      end
    end
  end
end

Version data entries

20 entries across 20 versions & 1 rubygems

Version Path
sequel-3.47.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.46.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.45.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.44.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.43.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.42.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.41.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.40.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.39.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.38.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.37.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.36.1 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.36.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.35.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.34.1 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.34.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.33.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.32.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.31.0 lib/sequel/adapters/jdbc/mssql.rb
sequel-3.30.0 lib/sequel/adapters/jdbc/mssql.rb