docs: public boolean doSeek(String strSeekSign) throws DBException
      {
          m_objLastModBookmark = null;
          String strKeyArea = this.getRecord().getKeyName();
          if (strKeyArea == null)
              strKeyArea = Constants.PRIMARY_KEY;
          int iOpenMode = this.getRecord().getOpenMode();
  
          Object objKeyData = null;
          KeyAreaInfo keyArea = this.getRecord().getKeyArea(-1);
          if (keyArea != null)
          {
              if (keyArea.getKeyFields() > 1)
              {
                  objKeyData = new Vector<Object>();
                  for (int i = 0; i < keyArea.getKeyFields(); i++)
                  {
                      ((Vector)objKeyData).add(keyArea.getField(i));
                  }
              }
              else
                  objKeyData = keyArea.getField(Constants.MAIN_KEY_FIELD).getData();
          }
          else
              objKeyData = this.getRecord().getField(Constants.MAIN_FIELD).getData();
          try   {
              Object objData = m_tableRemote.seek(strSeekSign, iOpenMode, strKeyArea, null, objKeyData);
              if (objData instanceof Vector)
              {
                  this.setDataSource(objData);
                  return true;    // Success
              }
              else if (objData instanceof Boolean)
                  return ((Boolean)objData).booleanValue();
              else
                  return false; // Never
          } catch (RemoteException ex) {
              throw new DBException(ex.getMessage());
          }
      }