shard-crystal-db/src/db/database.cr

44 lines
828 B
Crystal
Raw Normal View History

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
# :nodoc:
def prepare(query)
@driver.prepare(query)
end
# :nodoc:
def exec(query, *args)
prepare(query).exec(*args)
end
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
end
end