Stored Procedure

Que tal, tengo un problema en crear un SP, estoy utilizando PHP con Mysql
Lo que quiero colocar en el SP es lo siguiente:
SELECT Apellido FROM personal WHERE Codempl=codigo
donde codigo es la variable entera del SP
Yo creo el SP pero al ejecutarlo me sale el error
can't return a result set in the given context
no se que hago mal si el SP si la llamada, no se la verdad
Muchas Gracias
martin

2 respuestas

Respuesta
1
Nunca he usado sp en php, creo que la base de datos debe de ser la INDB o algo así, pero si es la normal aquí te mando una clase que te permite con la normal usar los sp
http://www.phpclasses.org/browse/package/1579.html
http://dev.mysql.com/doc/refman/5.0/en/stored-routines.html
En este link viene la sntaxis de como usar los sp en mysql.
Respuesta
1
Los procedimientos están pensados para realizar operaciones pero no devuelven nada, por eso te dice que en este contexto no puede devolver un resultado, porque no tiene adónde enviarlo.
Lo que creo que tu pretendes hacer es una consulta con parámetros. Otras bases de datos, utilizan sentencias 'prepare' para preparar la sentencia y añadir parámetros a la misma. En Mysql no se realiza de esta manera.
La forma de realizarlo es con:
$result = mysql_query("SELECT Apellido FROM personal WHERE Codempl=" . $codigo);
Gracias David por contestarme
Ahora más o menos me cierra el tema ya que cuando hago SP para borrar registros, insertar y modificar registros no hay problema, el drama me sale al usar un select.
¿Esto significa que si yo quiero colocar un Select dentro de un SP no se puede hacer de ninguna forma?. La idea mía era crear procedmientos con la consultas que quiero realizar así de esa forma hago las llamadas a los procedimientos con los parámetros respectivos y me ahorro de escribir las consultas cada ves que las necesito
Gracias por la ayuda
martin
Pues lamentablemente hata la actual versión de MySql no se puede usar la select como tu quieres en un procedimiento.
Como ya te digo, los procedimientos están pensados para mover datos, hacer cálculos, etc. pero son incapaces de devolver un record set. Como mucho pueden devolver algún valor si usas funciones en lugar de procedimientos, pero no sirve para lo que tu quieres hacer.

Añade tu respuesta

Haz clic para o

Más respuestas relacionadas