# File lib/dbi/dbi.rb, line 807 def fetch(&p) raise InterfaceError, "Statement was already closed!" if @handle.nil? raise InterfaceError, "Statement must first be executed" unless @fetchable if block_given? while (res = @handle.fetch) != nil @row.set_values(res) yield @row end @handle.cancel @fetchable = false return nil else res = @handle.fetch if res.nil? @handle.cancel @fetchable = false else @row.set_values(res) res = @row end return res end end