[Solucionado] Error login g3w 2.8.0

Al intentar loguearme no sale ningún error pero no se loguea…

Debugueando…

en login.php llama al método autenticar y ejecuta:

$datos = catalogo::consultar(‘persona’, ‘login’, $parametros);

luego en catalogo.php cuando intenta averiguar la UA ejecuta:

$dao = self::cargar_dao($clase);
$datos = $dao->$metodo($parametros);

ya en la clase unidad_academica intenta hacer:

$sql = “execute procedure sp_unidadAcademica({$parametros[‘ua’]})”;
$datos = kernel::db()->consultar_fila($sql, db::FETCH_NUM);
$nuevo[‘UNIDAD_ACADEMICA’] = $datos[0];
$nuevo[‘NOMBRE’] = $datos[1];
$nuevo[‘SIGLA’] = $datos[2];
$nuevo[‘LOGO’] = $datos[3];
$nuevo[‘NOMBRE_UNIVERSIDAD’] = $datos[4];
return $nuevo;

y en el execute falla y da error (-284, se obtuvo más de un resultado)…
les dejo una captura con el detalle del error: https://www.dropbox.com/s/o0mt1kuy2f8tsh9/Captura%20de%20pantalla%202015-05-04%2019.57.20(3).png?dl=0

ahora bien… si ejecuto desde el sqlEditor lo mismo me trae un solo registro… ¿alguna idea?

Hola, ese error se debe a que una subquery que debería devolver una única fila esta devolviendo mas de una (http://www.oninit.com/errorcode/index.php?pageid=-284). Por lo que me decís, si en el sqlEditor te esta devolviendo una sola fila se puede deber a que la tabla en cuestión este dañada y haya que volver a regenerarla (http://www.lawebdelprogramador.com/foros/Informix/1020431-dbexport-a-subquery-has-returned-not-exactly-one-r.html).

Proba corriendo:

UPDATE STATISTICS HIGH;

va a tardar un ratito. saludos.

Pareciera que el problema viene por esta consulta:


SELECT version
  FROM app_versiones as a
 GROUP BY a.version
HAVING max(a.fecha_actualiz) = (SELECT max(v.fecha_actualiz) FROM app_versiones v);

Podes correrla y verificar si esa es la que te da mas de una fila? Si es asi, pareciera que tuvieron algun problema al convertir la base, no deberia haber dos scripts con la misma fecha de actualización. es imposible lograrlo corriendo script por script.


SELECT * 
  FROM app_versiones as a
HAVING max(a.fecha_actualiz) = (SELECT max(v.fecha_actualiz) FROM app_versiones v);

Alejandro estuviste super atento…

No se quién estuvo jugando con la tabla app_versiones de la base de desarrollo, pero el error era el descrito (no una migración sino un insert/update en dicha tabla).

Gracias.