| Class | Sequel::Firebird::Database |
| In: |
lib/sequel/adapters/firebird.rb
|
| Parent: | Sequel::Database |
| DISCONNECT_ERRORS | = | /Unsuccessful execution caused by a system error that precludes successful execution of subsequent statements/ |
# File lib/sequel/adapters/firebird.rb, line 15
15: def connect(server)
16: opts = server_opts(server)
17:
18: Fb::Database.new(
19: :database => "#{opts[:host]}:#{opts[:database]}",
20: :username => opts[:user],
21: :password => opts[:password]).connect
22: end
# File lib/sequel/adapters/firebird.rb, line 24
24: def disconnect_connection(conn)
25: begin
26: conn.close
27: rescue Fb::Error
28: nil
29: end
30: end
# File lib/sequel/adapters/firebird.rb, line 32
32: def execute(sql, opts={})
33: begin
34: synchronize(opts[:server]) do |conn|
35: if conn.transaction_started && !_trans(conn)
36: conn.rollback
37: raise DatabaseDisconnectError, "transaction accidently left open, rolling back and disconnecting"
38: end
39: r = log_yield(sql){conn.execute(sql)}
40: yield(r) if block_given?
41: r
42: end
43: rescue Fb::Error => e
44: raise_error(e, :disconnect=>DISCONNECT_ERRORS.match(e.message))
45: end
46: end