docs: public String getMessage(Task task)
      {
          String strError = null;
          switch (m_iErrorCode)
          {
          case DBConstants.NORMAL_RETURN:
              strError = "Normal return";break; // Never
          case DBConstants.END_OF_FILE:
              strError = "End of file";break;
          case DBConstants.KEY_NOT_FOUND:
              strError = "Key not found";break;
          case DBConstants.DUPLICATE_KEY:
              strError = "Duplicate key";break;
          case DBConstants.FILE_NOT_OPEN:
              strError = "File not open";break;
          case DBConstants.FILE_ALREADY_OPEN:
              strError = "File already open";break;
          case DBConstants.FILE_TABLE_FULL:
              strError = "File table full";break;
          case DBConstants.FILE_INCONSISTENCY:
              strError = "File inconsistency";break;
          case DBConstants.INVALID_RECORD:
              strError = "Invalid record";break;
          case DBConstants.FILE_NOT_FOUND:
              strError = "File not found";break;
          case DBConstants.INVALID_KEY:
              strError = "Invalid Key";break;
          case DBConstants.FILE_ALREADY_EXISTS:
              strError = "File Already Exists";break;
          case DBConstants.NULL_FIELD:
              strError = "Null field";break;
          case DBConstants.READ_NOT_NEW:
              strError = "Read not new";break;
          case DBConstants.NO_ACTIVE_QUERY:
              strError = "No active query";break;
          case DBConstants.RECORD_NOT_LOCKED:
              strError = "Record not locked";break;
          case DBConstants.RETRY_ERROR:
              strError = "Retry error";break;
          case DBConstants.ERROR_READ_ONLY:
              strError = "Can't update read only file";break;
          case DBConstants.ERROR_APPEND_ONLY:
              strError = "Can't update append only file";break;
          case DBConstants.RECORD_LOCKED:
              strError = "Record locked";break;
          case DBConstants.BROKEN_PIPE:
              strError = "Broken Pipe";break;
          case DBConstants.DUPLICATE_COUNTER:
              strError = "Duplicate counter";break;
          case DBConstants.DB_NOT_FOUND:
              strError = "Database not found";break;
          case DBConstants.NEXT_ERROR_CODE:
          case DBConstants.ERROR_RETURN:
          case DBConstants.ERROR_STRING:
          default:
              strError = super.getMessage();  // See if there is a built-in message
              if ((strError == null) || (strError.length() == 0) || (strError.startsWith("null")))
                  if (task != null)
              {   // Unknown error code, see if it was the last error
                  strError = task.getLastError(m_iErrorCode);
                  if ((strError != null) && (strError.length() > 0))
                      break;  // Yes, return the error message
              }
              break;
          }
          return strError;
      }