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

27 lines
525 B
Crystal
Raw Normal View History

module DB
abstract class ResultSet
getter statement
def initialize(@statement : Statement)
end
2016-01-28 23:51:03 +00:00
def each
while move_next
2016-01-28 23:51:03 +00:00
yield
end
end
abstract def move_next : Bool
# list datatypes that must be supported form the driver
# users will call read(String) or read?(String) for nillables
{% for t in DB::TYPES %}
abstract def read?(t : {{t}}.class) : {{t}}?
def read(t : {{t}}.class) : {{t}}
read?({{t}}).not_nil!
end
{% end %}
end
end