Ver Mensaje Individual
  #11 (permalink)  
Antiguo 17/02/2011, 07:44
Avatar de gnzsoloyo
gnzsoloyo
Moderador criollo
 
Fecha de Ingreso: noviembre-2007
Ubicación: Actualmente en Buenos Aires (el enemigo ancestral)
Mensajes: 23.324
Antigüedad: 16 años, 5 meses
Puntos: 2658
Respuesta: Store Procedure que devuelva una tabla

- Los DECLARE deben estar al principio, cuando se usan sentencias preparadas.
- Los SP, para cargarlos programáticamente (desde un lenguaje de programación) sólo deben contener el cuerpo del código:
Código PHP:
// $db es el result de la conexión.
// $query es una variable string
// $res es el result de ejecución
// \n permite agregar un salto de linea en la cadena almacenada.

$query "DROP PROCEDURE IF EXISTS `getpersonas`";
$res mysql_query($query$db);
$query "CREATE PROCEDURE `getPersonas`( IN cadenaWhere VARCHAR(1000))\n";
$query. = "BEGIN\n";
$query. = "    DECLARE stmt VARCHAR(1000);\n";
$query. = "    SET @ss=CONCAT('select * FROM personas ', cadenaWhere);\n";
$query. = "    PREPARE stmt FROM @ss;\n";
$query. = "    EXECUTE stmt;\n";
$query. = "    DEALLOCATE PREPARE stmt;\n";
$query. = "END";
$res mysql_query($query$db); 
- Recordar que cuando un SP se carga, sigue existiendo todo el tiempo hasta borrarlo, por lo que no es necesario volverlo a cargar si no ha sido modificado.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)