protected function _processSearch()
 {
     $class = $this->_getSearchClass();
     $table = DBObject::stGetTableName($class);
     $fieldId = $class::stGetFieldConfigFiltered(array("identifier" => true));
     $select = "SELECT {$this->fields} FROM {$table}";
     $where = "";
     foreach ($this->filters as $field => $filter) {
         $field = DBObject::stObjFieldToDBField($field);
         $op = $filter[0];
         if (is_array($filter[1])) {
             $whereField = "(";
             foreach ($filter[1] as $value) {
                 // TODO soporte para OR ?
                 $whereField = $whereField . "'" . $value . "'" . " AND ";
             }
             $whereField = substr($whereField, 0, -5) . ")";
         } else {
             $whereField = "'" . $filter[1] . "'";
         }
         $where = $where . $field . " " . $op . " " . $whereField . " AND ";
     }
     if ($where != "") {
         $select = $select . " WHERE " . substr($where, 0, -5);
     }
     $offset = ($this->page - 1) * $this->limit;
     $select = $select . " LIMIT {$offset},{$this->limit}";
     $mysqlParams = static::_stGetMySQLParams();
     $search = DBMySQLConnection::stVirtualConstructor($mysqlParams)->query($select);
     // Anotamos los resultados
     $this->count = $search->num_rows;
     // Guardamos la búsqueda
     $this->search = $search;
 }
 function getDBColumnType($field)
 {
     $params = array_merge(array_keys($this->objFields), array_keys($this->params));
     $_params = array();
     foreach ($params as $param) {
         $_params[$param] = isset($this->{$param}) ? $this->{$param} : $this->objFields["{$param}"];
     }
     return "`" . DBObject::stObjFieldToDBField($field) . "` " . $this->_getDBColumnType($_params);
 }
 private function _getPrimaryKey($config)
 {
     $PK = array();
     foreach ($config as $field => $fieldConfig) {
         if ($fieldConfig["DT"] == "DataTypeIdDT" && $fieldConfig["DTParams"]["identifier"] == true) {
             $PK[] = DBObject::stObjFieldToDBField($field);
         }
     }
     return "PRIMARY KEY (`" . implode(",", $PK) . "`)";
 }
 protected function _save()
 {
     $dbObj = array();
     // TODO usar stObjToDBFields
     foreach ($this->_getStoredParams() as $field => $value) {
         $dbObj[DBObject::stObjFieldToDBField($field)] = $value;
     }
     $mysqlParams = static::_stGetMySQLParams();
     return (bool) DBMySQLConnection::stVirtualConstructor($mysqlParams)->updateObj($dbObj, $this->_getObjectId());
 }