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/ |
Add the primary_keys instance variables. so we can get the correct return values for inserted rows.
# File lib/sequel/adapters/firebird.rb, line 17 17: def initialize(*args) 18: super 19: @primary_keys = {} 20: end
# File lib/sequel/adapters/firebird.rb, line 22 22: def connect(server) 23: opts = server_opts(server) 24: 25: Fb::Database.new( 26: :database => "#{opts[:host]}:#{opts[:database]}", 27: :username => opts[:user], 28: :password => opts[:password]).connect 29: end
# File lib/sequel/adapters/firebird.rb, line 31 31: def execute(sql, opts={}) 32: begin 33: synchronize(opts[:server]) do |conn| 34: if conn.transaction_started && !@transactions.has_key?(conn) 35: conn.rollback 36: raise DatabaseDisconnectError, "transaction accidently left open, rolling back and disconnecting" 37: end 38: r = log_yield(sql){conn.execute(sql)} 39: yield(r) if block_given? 40: r 41: end 42: rescue Fb::Error => e 43: raise_error(e, :disconnect=>DISCONNECT_ERRORS.match(e.message)) 44: end 45: end