class Sequel::DBI::Database
def self.dataset(*args)
def self.dataset(*args) ds = super ds.extend Sequel::MSSQL::DatasetMethods ds end
def self.uri_to_options(uri) # :nodoc:
to a newly created database object.
Converts a uri to an options hash. These options are then passed
def self.uri_to_options(uri) # :nodoc: database = (m = /\/(.*)/.match(uri.path)) && (m[1]) if m = /dbi-(.+)/.match(uri.scheme) adapter = DBI_ADAPTERS[m[1].to_sym] || m[1] database = "#{adapter}:dbname=#{database}" end { :user => uri.user, :password => uri.password, :host => uri.host, :port => uri.port, :database => database } end
def connect(server)
def connect(server) opts = server_opts(server) dbname = opts[:database] if dbname !~ /^DBI:/ then dbname = "DBI:#{dbname}" [:host, :port].each{|sym| dbname += ";#{sym}=#{opts[sym]}" unless blank_object?(opts[sym])} end ::DBI.connect(dbname, opts[:user], opts[:password]) end
def disconnect_connection(c)
def disconnect_connection(c) c.disconnect end
def do(sql, opts={})
def do(sql, opts={}) synchronize(opts[:server]){|conn| log_yield(sql){conn.do(sql)}} end
def execute(sql, opts={})
def execute(sql, opts={}) synchronize(opts[:server]) do |conn| r = log_yield(sql){conn.execute(sql)} yield(r) if block_given? r end end
def initialize(opts)
def initialize(opts) super case @opts[:db_type] when 'mssql' Sequel.ts_require 'adapters/shared/mssql' extend Sequel::MSSQL::DatabaseMethods def self.dataset(*args) ds = super ds.extend Sequel::MSSQL::DatasetMethods ds end end end