Ver Mensaje Individual
  #16 (permalink)  
Antiguo 21/02/2011, 08:28
cribelo
Usuario no validado
 
Fecha de Ingreso: agosto-2007
Mensajes: 141
Antigüedad: 17 años, 3 meses
Puntos: 1
Respuesta: Store Procedure que devuelva una tabla

Cita:
Iniciado por gnzsoloyo Ver Mensaje
Dialéctica: Esto es bases de datos, nunca hablamos de arrays, porque en MySQL no existen los arrays. Si en PHP eso es un array de arrays, es medio irrelevante. Conceptualmente nosotros lo pensamos como tablas...
Sé positivamente que un SP en esas condiciones devuelve una tabla, porque lo uso en consultas de funciones PHP y en funciones de VB.Net, y porque ejecutado en MySQL Workbench, obtengo como resultado una tabla. El cómo lo interprete el PHP a nivel de programación es tema d PHP.
Lo importante es que si la sentencia fue correctamente ejecutada en MySQL, eso debe devolver una tabla de resultados con una sola columna y un solo registro:

Código MySQL:
Ver original
  1. mysql> SELECT LAST_INSERT_ID() ULTIMO_ID;
  2. +-----------+
  3. | ULTIMO_ID |
  4. +-----------+
  5. |        23 |
  6. +-----------+
  7. 1 row in set (0.00 sec)


yo de nuevo!!! aja


Me funciono, pero tengo otro problema, que despues de insertar la persona tengo que insertar el estado (no importa explicar que es el estado de la persona)
Y quiero hacerlo directamente en el store procedure, y no por fuera con php,
algo asi

DELIMITER $$
DROP PROCEDURE IF EXISTS `personas`.`insertarPersona`$$
CREATE PROCEDURE `insertarPersona`(IN unnombre VARCHAR(50),IN unapellido VARCHAR(50))
BEGIN
DECLARE a INT;
DECLARE ultimoId INT;
SET AUTOCOMMIT=0;
START TRANSACTION;
INSERT INTO personas.personas (nombre,apellido)
VALUES
(unnombre,unapellido);
SET ultimoId=(SELECT LAST_INSERT_ID() as ULTIMO_ID FROM personas.personas);
INSERT INTO seguimientosPersonas (idPersona, idEstado, idUsuario,hora,fecha) VALUES (ultimoId, 1,unIdUsuario,CURRENT_TIMESTAMP,CURRENT_DATE());
SET a=(SELECT @@error_count);
IF a=0 THEN
COMMIT;
ELSE
ROLLBACK;
END IF;
END$$
DELIMITER;


El tema es que me da error, hay alguna forma de que el error muestre algo mas detallado? porque solo me dice MysqlError, no hay alguna forma de imprimir el mensaje de error y verlo?
porque el store en el mysql browser se corre bien y se genera bien, pero cuando lo ejecuto me da el error.
Grcias gnzsoloyo!!