def fetch_scroll(direction, offset)
case direction
when DBI::SQL_FETCH_NEXT
@current_row += 1
fill_array(@res_handle.fetch_row)
when DBI::SQL_FETCH_PRIOR
@res_handle.data_seek(@current_row - 1)
fill_array(@res_handle.fetch_row)
when DBI::SQL_FETCH_FIRST
@current_row = 1
@res_handle.data_seek(@current_row - 1)
fill_array(@res_handle.fetch_row)
when DBI::SQL_FETCH_LAST
@current_row = @res_handle.num_rows
@res_handle.data_seek(@current_row - 1)
fill_array(@res_handle.fetch_row)
when DBI::SQL_FETCH_ABSOLUTE
@current_row = offset + 1
@res_handle.data_seek(@current_row - 1)
fill_array(@res_handle.fetch_row)
when DBI::SQL_FETCH_RELATIVE
@current_row += offset + 1
@res_handle.data_seek(@current_row - 1)
fill_array(@res_handle.fetch_row)
else
raise NotSupportedError
end
end