# File lib/dbd_msql/Msql.rb, line 167
  def fetch_scroll( direction, offset )
    case direction
    when DBI::SQL_FETCH_NEXT
      fetch
    when DBI::SQL_FETCH_PRIOR
      if @row_pos.nil?
        @row_pos = @res_handle.num_rows-1
        @res_handle.data_seek(@row_pos)
        fetch
      elsif @row_pos == 0
        nil
      else
        @row_pos -= 1
        @res_handle.data_seek(@row_pos)
        fetch
      end 
    when DBI::SQL_FETCH_FIRST
      @row_pos = 0
      @res_handle.data_seek(@row_pos)
      fetch
    when DBI::SQL_FETCH_LAST
      @res_handle.data_seek(@res_handle.num_rows-1)
      @row_pos = nil 
      @res_handle.fetch_row
    when DBI::SQL_FETCH_ABSOLUTE
      @row_pos = offset
      @res_handle.data_seek(@row_pos)
      fetch
    when DBI::SQL_FETCH_RELATIVE
      if @row_pos.nil?
        @row_pos = @res_handle.num_rows
      end
      @row_pos += offset 
      @res_handle.data_seek(@row_pos)
      fetch
    end
  rescue MyError => err
    raise DBI::DatabaseError.new(err.message)
  end