class Sequel::ODBC::Database

Public Instance Methods

connect(server) click to toggle 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
disconnect_connection(c) click to toggle source
   # File lib/sequel/adapters/odbc.rb
35 def disconnect_connection(c)
36   c.disconnect
37 end
execute(sql, opts=OPTS) { |r| ... } click to toggle 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 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
execute_dui(sql, opts=OPTS) click to toggle 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

adapter_initialize() click to toggle 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
connection_execute_method() click to toggle source
   # File lib/sequel/adapters/odbc.rb
71 def connection_execute_method
72   :do
73 end
database_error_classes() click to toggle source
   # File lib/sequel/adapters/odbc.rb
75 def database_error_classes
76   [::ODBC::Error]
77 end
dataset_class_default() click to toggle source
   # File lib/sequel/adapters/odbc.rb
79 def dataset_class_default
80   Dataset
81 end
disconnect_error?(e, opts) click to toggle source
Calls superclass method Sequel::Database#disconnect_error?
   # 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