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

Resultado de un EXECUTE en un Proc. almacenado

Estas en el tema de Resultado de un EXECUTE en un Proc. almacenado en el foro de Bases de Datos General en Foros del Web. Hola a todos, Quiero llamar a un PA desde otro PA con la función EXECUTE y sus resultados filtrarlos, pero no se como. Esto no ...
  #1 (permalink)  
Antiguo 07/04/2005, 05:25
 
Fecha de Ingreso: mayo-2003
Mensajes: 28
Antigüedad: 21 años, 6 meses
Puntos: 0
Resultado de un EXECUTE en un Proc. almacenado

Hola a todos,

Quiero llamar a un PA desde otro PA con la función EXECUTE y sus resultados filtrarlos, pero no se como. Esto no funciona:

Código:
SELECT * FROM EXECUTE 'Portal_GetProjects @moduleID=44, @Lang="es"' 
WHERE CatID = @CatID
Como puedo procesar los resultados de :
Código:
EXECUTE 'Portal_GetProjects @moduleID=44, @Lang="es"'
Muchas gracias y saludos.

[ PA = Procedimiento almacenado ]
  #2 (permalink)  
Antiguo 07/04/2005, 07:29
Avatar de JBalde  
Fecha de Ingreso: febrero-2005
Ubicación: Madrid
Mensajes: 118
Antigüedad: 19 años, 9 meses
Puntos: 5
Lo primero decirte que te intentes usar terminos genericos, acostumbrate por comodidad para los usuarios a llamar a los PA, SP (Stored Procedure) es como se les conoce. Tu tienes tu primer SP

CREATE PROCEDURE Procedimiento1........
AS
.....
EXEC Procedimiento2 [parametros]
......

Dentro de tu primer procedimiento tienes un comando T-SQL para ejecutar con EXEC (EXEC=EXECUTE) el segundo procedimiento

Creo que es esto lo que quieres hacer. Si no es esto, dimelo e intentare ayudarte.
  #3 (permalink)  
Antiguo 07/04/2005, 09:21
 
Fecha de Ingreso: mayo-2003
Mensajes: 28
Antigüedad: 21 años, 6 meses
Puntos: 0
Hola JBalde,

Gracias,
Hasta eso ya llego.
Lo que no se es como recuperar dentro de la primera SP los datos que devuelve la ejecucion de la 2º SP.

Se que se puede recuperar un parametro de salida como variable.
Pero lo que no se es como recuperar la tabla (registros) que devuelve la ejecucion del procedimiento, para luego filtrar esa tabla y devolver los resultados filtrados como resultado de la 1ª SP.

EJEMPLO:

Supongamos que tengo una SP (Portal_GetProjects) que me da todos los registros de la tabla Portal_Projects.
Esta SP es compleja por alguna razon que no viene al caso.

Ahora quiero hacer cinco SP que me devuelven los registros de la tabla Portal_Projects, pero filtrados, por ejemlpo, por fecha, cliente, tipo, sector, o pais. por ejemplo:

Portal_GetProjects_ByDate
Portal_GetProjects_ByClient
Portal_GetProjects_ByTipo
Portal_GetProjects_BySector
Portal_GetProjects_ByCountry

Como no quiero repetir en todas ellas el codigo complejo de la SP Portal_GetProjects, lo que hago es llamar desde cada una de estas cinco SP a la 1ª (Portal_GetProjects) con la sentencia EXECUTE Portal_GetProjects ...

Y ahi viene el problema, no se como obtener esos resultados (registros) para luego filtrarlos por fecha, cliente, tipo, sector, o pais.
Necesito un codigo parecido al siguiente, pero que no funciona:
Código:
SELECT * FROM EXECUTE 'Portal_GetProjects'
WHERE CatID = @CatID
No se como recuperar los registros del EXECUTE

Un saludo.
  #4 (permalink)  
Antiguo 07/04/2005, 15:11
Avatar de JBalde  
Fecha de Ingreso: febrero-2005
Ubicación: Madrid
Mensajes: 118
Antigüedad: 19 años, 9 meses
Puntos: 5
Perdona, pero no entendi correctamente lo que quierias. Lo que puedes hacer es guardar la tabla en un cursor y utilizarlo con fetch next from, etc en el primer SP
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 14:19.