2016-01-29 19:13:01 +00:00
|
|
|
module DB
|
|
|
|
# Acts as an entry point for database access.
|
|
|
|
# Offers a com
|
|
|
|
class Database
|
|
|
|
getter driver_class
|
|
|
|
getter options
|
|
|
|
|
|
|
|
def initialize(@driver_class, @options)
|
|
|
|
@driver = @driver_class.new(@options)
|
|
|
|
end
|
|
|
|
|
2016-01-30 00:57:00 +00:00
|
|
|
# :nodoc:
|
2016-01-29 19:13:01 +00:00
|
|
|
def prepare(query)
|
|
|
|
@driver.prepare(query)
|
|
|
|
end
|
|
|
|
|
2016-01-30 00:57:00 +00:00
|
|
|
# :nodoc:
|
2016-01-29 19:13:01 +00:00
|
|
|
def exec(query, *args)
|
|
|
|
prepare(query).exec(*args)
|
|
|
|
end
|
2016-01-30 00:57:00 +00:00
|
|
|
|
|
|
|
def exec_non_query(query, *args)
|
|
|
|
exec_query(query) do |result_set|
|
|
|
|
result_set.move_next
|
|
|
|
end
|
|
|
|
end
|
|
|
|
|
|
|
|
# :nodoc:
|
|
|
|
def exec_query(query, *args)
|
|
|
|
result_set = exec(query, *args)
|
|
|
|
yield result_set
|
|
|
|
result_set.close
|
|
|
|
end
|
|
|
|
|
|
|
|
def exec_query_each(query, *args)
|
|
|
|
exec_query(query) do |result_set|
|
|
|
|
result_set.each do
|
|
|
|
yield result_set
|
|
|
|
end
|
|
|
|
end
|
|
|
|
end
|
2016-01-29 19:13:01 +00:00
|
|
|
end
|
|
|
|
end
|