connect(server)
click to toggle source
def connect(server)
opts = server_opts(server)
db = Fb::Database.new(
:database => "#{opts[:host]}:#{opts[:database]}",
:username => opts[:user],
:password => opts[:password])
conn = db.connect
conn.downcase_names = true
conn
end
create_trigger(*args)
click to toggle source
def create_trigger(*args)
self << create_trigger_sql(*args)
end
dataset(opts = nil)
click to toggle source
def dataset(opts = nil)
Firebird::Dataset.new(self, opts)
end
drop_sequence(name)
click to toggle source
def drop_sequence(name)
self << drop_sequence_sql(name)
end
execute(sql, opts={})
click to toggle source
def execute(sql, opts={})
begin
synchronize(opts[:server]) do |conn|
r = log_yield(sql){conn.execute(sql)}
yield(r) if block_given?
r
end
rescue => e
raise_error(e, :classes=>[Fb::Error])
end
end
primary_key(table, server=nil)
click to toggle source
Return primary key for the given table.
def primary_key(table, server=nil)
synchronize(server){|conn| primary_key_for_table(conn, table)}
end
primary_key_for_table(conn, table)
click to toggle source
Returns primary key for the given table. This information is cached, and
if the primary key for a table is changed, the @primary_keys instance
variable should be reset manually.
def primary_key_for_table(conn, table)
@primary_keys[quote_identifier(table)] ||= conn.table_primary_key(quote_identifier(table))
end
restart_sequence(*args)
click to toggle source
def restart_sequence(*args)
self << restart_sequence_sql(*args)
end
sequences(opts={})
click to toggle source
def sequences(opts={})
ds = self[:"rdb$generators"].server(opts[:server]).filter(:"rdb$system_flag" => 0).select(:"rdb$generator_name")
block_given? ? yield(ds) : ds.map{|r| ds.send(:output_identifier, r[:"rdb$generator_name"])}
end
tables(opts={})
click to toggle source
def tables(opts={})
ds = self[:"rdb$relations"].server(opts[:server]).filter(:"rdb$view_blr" => nil, Sequel::SQL::Function.new(:COALESCE, :"rdb$system_flag", 0) => 0).select(:"rdb$relation_name")
block_given? ? yield(ds) : ds.map{|r| ds.send(:output_identifier, r[:"rdb$relation_name"])}
end