docs: public boolean doHasPrevious()
      {
          if ((m_iRecordStatus & DBConstants.RECORD_AT_BOF) != 0)
              return false; // Already at BOF (can't be one before)
          if ((m_iRecordStatus & DBConstants.RECORD_PREVIOUS_PENDING) != 0)
              return true;    // Already one waiting
          boolean bAtBOF = true;
          try   {
              FieldList record = this.move(DBConstants.PREVIOUS_RECORD);
              if (record == null)
                  bAtBOF = true;
              else if ((m_iRecordStatus & DBConstants.RECORD_AT_BOF) != 0)
                  bAtBOF = true;
              else if (this.isTable())
                  bAtBOF = this.isBOF();
              else
                  bAtBOF = false;     // Valid record!
          } catch (DBException ex)    {
              ex.printStackTrace();
          }
          if (bAtBOF)
              return false; // Does not have a next record
          m_iRecordStatus |= DBConstants.RECORD_PREVIOUS_PENDING;     // If next call is a moveNext(), return unchanged!
          return true;        // Yes, a next record exists.
      }