| Class | Sequel::ODBC::Database |
| In: |
lib/sequel/adapters/odbc.rb
|
| Parent: | Sequel::Database |
| GUARDED_DRV_NAME | = | /^\{.+\}$/.freeze |
| DRV_NAME_GUARDS | = | '{%s}'.freeze |
| DISCONNECT_ERRORS | = | /\A08S01/.freeze |
# 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
# File lib/sequel/adapters/odbc.rb, line 32
32: def disconnect_connection(c)
33: c.disconnect
34: end
# 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
# 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