class Sequel::ODBC::Database
Public Instance Methods
Source
# File lib/sequel/adapters/odbc.rb 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
Source
# File lib/sequel/adapters/odbc.rb 35 def disconnect_connection(c) 36 c.disconnect 37 end
Source
# File lib/sequel/adapters/odbc.rb 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 defined?(yield) 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
Source
# File lib/sequel/adapters/odbc.rb 53 def execute_dui(sql, opts=OPTS) 54 synchronize(opts[:server]) do |conn| 55 begin 56 log_connection_yield(sql, conn){conn.do(sql)} 57 rescue ::ODBC::Error, ArgumentError => e 58 raise_error(e) 59 end 60 end 61 end
Private Instance Methods
Source
# File lib/sequel/adapters/odbc.rb 65 def adapter_initialize 66 if (db_type = @opts[:db_type]) && (prok = Sequel::Database.load_adapter(db_type.to_sym, :map=>DATABASE_SETUP, :subdir=>'odbc')) 67 prok.call(self) 68 end 69 end
Source
# File lib/sequel/adapters/odbc.rb 71 def connection_execute_method 72 :do 73 end
Source
# File lib/sequel/adapters/odbc.rb 75 def database_error_classes 76 [::ODBC::Error] 77 end
Source
# File lib/sequel/adapters/odbc.rb 79 def dataset_class_default 80 Dataset 81 end
Source
# File lib/sequel/adapters/odbc.rb 83 def disconnect_error?(e, opts) 84 super || (e.is_a?(::ODBC::Error) && /\A08S01/.match(e.message)) 85 end
Calls superclass method
Sequel::Database#disconnect_error?