| 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