}
// Si no hay mas resultados, entonces terminó bien.
if (AI_Error::isError($err)
- and $err->getCode() == AIERROR_NO_RESULTADOS) {
+ and $err->getCode() == AI_ERROR_NO_RESULTADOS) {
return true;
}
// Si no, se devuelve el error.
}
// -X2C
+ // +X2C Operation 529
+ /**
+ * Borra el objeto de la base de datos verificando que no tenga hijos.
+ *
+ * @param DB $db Base de datos de la cual borrar el objeto.
+ *
+ * @return PEAR_Error
+ * @access public
+ */
+ function borrar($db) // ~X2C
+ {
+ $id_field = $this->conf['id'];
+ $id_padre = $this->conf['padre'];
+ $tabla = $this->conf['base'].'.'.$this->conf['tabla'];
+ $id = intval($this->$id_field);
+ if ($id) {
+ // Verifico si tiene hijos.
+ $hijos = $db->getOne("
+ SELECT $id_field
+ FROM $tabla
+ WHERE $id_padre = $id");
+ if (DB::isError($hijos)) {
+ return $hijos;
+ } elseif ($hijos) {
+ // Si tiene hijos, da error.
+ return new AI_Error(AI_ERROR_TIENE_HIJOS,
+ "El elemento de identificador $id todavía tiene hijos.");
+ } else {
+ // Si no tiene hijos, lo borro.
+ return parent::borrar($db);
+ }
+ }
+ return PEAR::raiseError('No hay un identificador válido para borrar');
+ }
+ // -X2C
+
} // -X2C Class :AI_DBTreeObject
?>
\ No newline at end of file