code: public boolean seek(String strSeekSign) throws DBException
      {
          // NOTE: This extra logic deals with a very specific and obscure case:
          // If this GRID table is NOT currently being used for indexed access (ie., get(x))
          // You can do a seek and I will cache the record. On a subsequent seek, I will return the cached
          // record. This is typically used for thin client accessing cached virtual fields in a table session.
          boolean bAutonomousSeek = false;
          if (m_iEndOfFileIndex == UNKNOWN_POSITION)
              if ((m_iPhysicalFilePosition == UNKNOWN_POSITION) || (m_iPhysicalFilePosition == ADD_NEW_POSITION))
                  if ((m_iLogicalFilePosition == UNKNOWN_POSITION) || (m_iLogicalFilePosition == ADD_NEW_POSITION))
                      bAutonomousSeek = true;
          if (bAutonomousSeek)
          {
              Object bookmark = this.getRecord().getHandle(DBConstants.BOOKMARK_HANDLE);
              int iPosition = this.findElement(bookmark, DBConstants.BOOKMARK_HANDLE);
              if (iPosition == 0)
              {
                  DataRecord dataRecord = (DataRecord)this.elementAt(iPosition);
                  return this.getNextTable().setDataRecord(dataRecord);    // Success always.
              }
          }
      //  Don't set m_iPhysicalFilePosition = UNKNOWN_POSITION, because tables use seek to do queries.
          boolean bSuccess = super.seek(strSeekSign);
          if (bAutonomousSeek)
          {
              if (bSuccess)
                  this.addRecordReference(0);
          }
          return bSuccess;
      }
docs: Read the record that matches this record's current key.
  For a GridTable, this method calls the inherited seek.
  @return true if successful, false if not found.
  @exception FILE_NOT_OPEN.
  @exception KEY_NOT_FOUND - The key was not found on read.