Class Sequel::ODBC::Database
In: lib/sequel/adapters/odbc.rb
Parent: Sequel::Database

Methods

Constants

GUARDED_DRV_NAME = /^\{.+\}$/.freeze
DRV_NAME_GUARDS = '{%s}'.freeze
DISCONNECT_ERRORS = /\A08S01/.freeze

Public Instance methods

[Source]

    # File lib/sequel/adapters/odbc.rb, line 12
12:       def connect(server)
13:         opts = server_opts(server)
14:         if opts.include? :driver
15:           drv = ::ODBC::Driver.new
16:           drv.name = 'Sequel ODBC Driver130'
17:           opts.each do |param, value|
18:             if :driver == param and not (value =~ GUARDED_DRV_NAME)
19:               value = DRV_NAME_GUARDS % value
20:             end
21:             drv.attrs[param.to_s.upcase] = value.to_s
22:           end
23:           db = ::ODBC::Database.new
24:           conn = db.drvconnect(drv)
25:         else
26:           conn = ::ODBC::connect(opts[:database], opts[:user], opts[:password])
27:         end
28:         conn.autocommit = true
29:         conn
30:       end

[Source]

    # File lib/sequel/adapters/odbc.rb, line 32
32:       def disconnect_connection(c)
33:         c.disconnect
34:       end

[Source]

    # File lib/sequel/adapters/odbc.rb, line 59
59:       def do(*a, &block)
60:         Sequel::Deprecation.deprecate('Database#do', 'Please use Database#execute_dui')
61:         execute_dui(*a, &block)
62:       end

[Source]

    # File lib/sequel/adapters/odbc.rb, line 36
36:       def execute(sql, opts={})
37:         synchronize(opts[:server]) do |conn|
38:           begin
39:             r = log_yield(sql){conn.run(sql)}
40:             yield(r) if block_given?
41:           rescue ::ODBC::Error, ArgumentError => e
42:             raise_error(e)
43:           ensure
44:             r.drop if r
45:           end
46:           nil
47:         end
48:       end

[Source]

    # File lib/sequel/adapters/odbc.rb, line 50
50:       def execute_dui(sql, opts={})
51:         synchronize(opts[:server]) do |conn|
52:           begin
53:             log_yield(sql){conn.do(sql)}
54:           rescue ::ODBC::Error, ArgumentError => e
55:             raise_error(e)
56:           end
57:         end
58:       end

[Validate]