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=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