Property definitions

sqlite3 $ StatementIterator :: defaultinit
# Iterator over the rows of a statement result
class StatementIterator
	super Iterator[StatementRow]

	# Statement linked to `self`
	var statement: Statement

	init
	do
		self.item = new StatementRow(statement)
		self.is_ok = statement.native_statement.step.is_row
	end

	redef var item: StatementRow is noinit

	redef var is_ok is noinit

	# require: `self.statement.is_open`
	redef fun next
	do
		assert statement_closed: statement.is_open

		var err = statement.native_statement.step
		if err.is_row then
			is_ok = true
		else if err.is_done then
			# Clean complete
			is_ok = false
		else
			# error
			# FIXME do something with the error?
			is_ok = false
		end
	end

	redef fun finish do if statement.close_with_iterator then statement.close
end
lib/sqlite3/sqlite3.nit:276,1--312,3