Foros del Web » Programación para mayores de 30 ;) » Bases de Datos General » Mysql »

Function que devuelve filas

Estas en el tema de Function que devuelve filas en el foro de Mysql en Foros del Web. Desde hace ya un tiempo he tenido la duda de si en MySql se puede crear una rutina tipo Function que devuelva un conjunto de ...
  #1 (permalink)  
Antiguo 17/11/2008, 11:41
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 15 años, 10 meses
Puntos: 2
Function que devuelve filas

Desde hace ya un tiempo he tenido la duda de si en MySql se puede crear una rutina tipo Function que devuelva un conjunto de filas. Siempre que he buscado no he encontrado nada claro.

¿Que me decís vosotros?
Gracias :)
  #2 (permalink)  
Antiguo 17/11/2008, 11:47
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Function que devuelve filas

Una función no puede devolver un conjunto de valores, no importa que sean filas o campos. Eso es una restricción impuesta en el modelo de SQL.
Recuerda que una función es una rutina programada que devuelve un único valor. En el caso de las SF, en MySQL todos los parámetros son de sólo entrada, por lo cual no es necesario indicar el IN en el prototipo.

Lo que sí puedes hacer es un STORE PROCEDURE que te devuelva una conjunto de filas o un registro entero (conjunto de campos). Solamente tienes que poner un SELECT como última instrucción del SP.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #3 (permalink)  
Antiguo 18/11/2008, 04:32
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Function que devuelve filas

Muchas gracias gnzsoloyo, eso era justo lo que queria saber! :)
Otra pregunta, si hago eso que dices, como llamo al SP? Con CALL o con SELECT?
  #4 (permalink)  
Antiguo 18/11/2008, 04:38
Avatar de 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, 4 meses
Puntos: 2658
Respuesta: Function que devuelve filas

La llamada es CALL, a menos que utilices programación en ASP, Java o VB.Net, porque existen conectores y librerías específicos que administrar objetos de tipo Command, los cuales tienen como propiedad una llamada Type que se puede definir como StoreProcedure, además de poder cargarse parámetros como objetos.
__________________
¿A quién le enseñan sus aciertos?, si yo aprendo de mis errores constantemente...
"El problema es la interfase silla-teclado." (Gillermo Luque)
  #5 (permalink)  
Antiguo 18/11/2008, 05:14
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Function que devuelve filas

Okey, cuando tenga un momento hago unas pruebas haber que tal.
Gracias
  #6 (permalink)  
Antiguo 20/11/2008, 04:38
 
Fecha de Ingreso: junio-2008
Mensajes: 60
Antigüedad: 15 años, 10 meses
Puntos: 2
Respuesta: Function que devuelve filas

Bueno lo he estado probando y veo que funciona perfectamente. Ahora me surge la siguiente duda (y espero que la ultima):
¿Como recogo desde otro procedure el resultset generado por SP que devuelve filas? Es decir, si A de vuelve filas, y en B hago un "CALL A()", como hago desde B para tratar esas filas?
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 02:15.