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:

: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