/**
  * Override method to perform a property "Set"
  * This will set the property $strName to be $mixValue
  *
  * @param string strName Name of the property to set
  * @param string mixValue New value of the property
  * @return mixed
  */
 public function __set($strName, $mixValue)
 {
     try {
         switch ($strName) {
             case 'OwnerTable':
                 return $this->objOwnerTable = QType::cast($mixValue, 'QTable');
             case 'PrimaryKey':
                 return $this->blnPrimaryKey = QType::Cast($mixValue, QType::Boolean);
             case 'Name':
                 return $this->strName = QType::Cast($mixValue, QType::String);
             case 'PropertyName':
                 return $this->strPropertyName = QType::Cast($mixValue, QType::String);
             case 'VariableName':
                 return $this->strVariableName = QType::Cast($mixValue, QType::String);
             case 'VariableType':
                 return $this->strVariableType = QType::Cast($mixValue, QType::String);
             case 'VariableTypeAsConstant':
                 return $this->strVariableTypeAsConstant = QType::Cast($mixValue, QType::String);
             case 'DbType':
                 return $this->strDbType = QType::Cast($mixValue, QType::String);
             case 'Length':
                 return $this->intLength = QType::Cast($mixValue, QType::Integer);
             case 'Default':
                 if ($mixValue === null || ($mixValue == '' || $mixValue == '0000-00-00 00:00:00' || $mixValue == '0000-00-00') && !$this->blnNotNull) {
                     return $this->mixDefault = null;
                 } else {
                     if (is_int($mixValue)) {
                         return $this->mixDefault = QType::Cast($mixValue, QType::Integer);
                     } else {
                         if (is_numeric($mixValue)) {
                             return $this->mixDefault = QType::Cast($mixValue, QType::Float);
                         } else {
                             return $this->mixDefault = QType::Cast($mixValue, QType::String);
                         }
                     }
                 }
             case 'NotNull':
                 return $this->blnNotNull = QType::Cast($mixValue, QType::Boolean);
             case 'Identity':
                 return $this->blnIdentity = QType::Cast($mixValue, QType::Boolean);
             case 'Indexed':
                 return $this->blnIndexed = QType::Cast($mixValue, QType::Boolean);
             case 'Unique':
                 return $this->blnUnique = QType::Cast($mixValue, QType::Boolean);
             case 'Timestamp':
                 return $this->blnTimestamp = QType::Cast($mixValue, QType::Boolean);
             case 'Reference':
                 return $this->objReference = QType::Cast($mixValue, 'QReference');
             case 'Comment':
                 return $this->strComment = QType::Cast($mixValue, QType::String);
             default:
                 return parent::__set($strName, $mixValue);
         }
     } catch (QCallerException $objExc) {
         $objExc->IncrementOffset();
         throw $objExc;
     }
 }