class Sequel::DBI::Database

  1. lib/sequel/adapters/dbi.rb
Parent: DBI

Methods

Public Class

  1. dataset
  2. new

Public Instance

  1. connect
  2. disconnect_connection
  3. do
  4. execute

Constants

DBI_ADAPTERS = { :ado => "ADO", :db2 => "DB2", :frontbase => "FrontBase", :interbase => "InterBase", :msql => "Msql", :mysql => "Mysql", :odbc => "ODBC", :oracle => "Oracle", :pg => "pg", :proxy => "Proxy", :sqlite => "SQLite", :sqlrelay => "SQLRelay" }  

Public Instance Aliases

execute_dui -> do

Public Class methods

dataset (*args)
[show source]
# File lib/sequel/adapters/dbi.rb, line 29
def self.dataset(*args)
  ds = super
  ds.extend Sequel::MSSQL::DatasetMethods
  ds
end
new (opts)
[show source]
# File lib/sequel/adapters/dbi.rb, line 23
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

Public Instance methods

connect (server)
[show source]
# File lib/sequel/adapters/dbi.rb, line 56
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
disconnect_connection (c)
[show source]
# File lib/sequel/adapters/dbi.rb, line 66
def disconnect_connection(c)
  c.disconnect
end
do (sql, opts={})
[show source]
# File lib/sequel/adapters/dbi.rb, line 78
def do(sql, opts={})
  synchronize(opts[:server]){|conn| log_yield(sql){conn.do(sql)}}
end
execute (sql, opts={})
[show source]
# File lib/sequel/adapters/dbi.rb, line 70
def execute(sql, opts={})
  synchronize(opts[:server]) do |conn|
    r = log_yield(sql){conn.execute(sql)}
    yield(r) if block_given?
    r
  end
end