Class | Sequel::ODBC::Database |
In: |
lib/sequel/adapters/odbc.rb
|
Parent: | Sequel::Database |
# File lib/sequel/adapters/odbc.rb, line 14 14: def connect(server) 15: opts = server_opts(server) 16: conn = if opts.include?(:drvconnect) 17: ::ODBC::Database.new.drvconnect(opts[:drvconnect]) 18: elsif opts.include?(:driver) 19: drv = ::ODBC::Driver.new 20: drv.name = 'Sequel ODBC Driver130' 21: opts.each do |param, value| 22: if :driver == param && value !~ /\A\{.+\}\z/ 23: value = "{#{value}}" 24: end 25: drv.attrs[param.to_s.upcase] = value.to_s 26: end 27: ::ODBC::Database.new.drvconnect(drv) 28: else 29: ::ODBC::connect(opts[:database], opts[:user], opts[:password]) 30: end 31: conn.autocommit = true 32: conn 33: end
# File lib/sequel/adapters/odbc.rb, line 35 35: def disconnect_connection(c) 36: c.disconnect 37: end
# File lib/sequel/adapters/odbc.rb, line 39 39: def execute(sql, opts=OPTS) 40: synchronize(opts[:server]) do |conn| 41: begin 42: r = log_connection_yield(sql, conn){conn.run(sql)} 43: yield(r) if block_given? 44: rescue ::ODBC::Error, ArgumentError => e 45: raise_error(e) 46: ensure 47: r.drop if r 48: end 49: nil 50: end 51: end