Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 26-09-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Ayuda con Stored Procedure

Hola a tod@s !

Estoy atascado con mi primer Stored Procedure y necesito vuestra ayuda.

Tengo un Stored Procedure que he comprobado funciona correctamente con una llamada individual.

Código SQL [-]
Select V_1, V_2, V_3 from MiStoredProcedure(1,2,3,4,5)

El Stored Procedure espera 5 parámetros de entrada y devuelve 3 de salida.

Ahora quiero incluir este procedimiento en un Select de una tabla, que es para lo que en teoría lo necesito. Y no sé como hacerlo. La consulta podría ser algo así como :

Código SQL [-]
Select T1.A, T1.B, V_1, V_2, V_3 from TABLA1 T1
y aquí es donde no sé como invocar al Stored Procedure con los 5 parámetros de la propia TABLA1 que tengo que pasar a MiStoredProcedure para que me devuelva los valores V_1, V_2 y V_3 para cada uno de los registros de TABLA1.

Lo que quiero es que MiStoredProcedure se ejecute para cada registro de TABLA1 y me devuelva los valores del resultado en la consulta Select para cada registro.

Espero haberme explicado correctamente.

Gracias por vuestra ayuda.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #2  
Antiguo 26-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
prueba lo siguiente y dime si funciona:
Código SQL [-]
select T1.A,T1.B, SP.V_1,SP.V_2,SP.V_3 from TABLA1 T1
join MiStoredProcedure(1,2,3,4,5)
los parámetros 1,2,3,4 y 5, podrían ser campos de la tabla T1
Código SQL [-]
select T1.A,T1.B, SP.V_1,SP.V_2,SP.V_3 from TABLA1 T1
join MiStoredProcedure(T1.A,T1.B,T1.C,T1.D,T1.E)
Responder Con Cita
  #3  
Antiguo 26-09-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Gracias por contestar. No, no me funciona. Tengo una condición Where adicional al final de la consulta y me da error precisamente en la palabra 'where'.

He seguido indagando y de momento lo consigo de esta manera :

Código SQL [-]
Select T1.A, T1.B, T1.C,
(Select V_1
 from MISTOREDPROCEDURE(T1.A, T1.B, T1.C, T1.D, T1.E)),
(Select V_2
 from MISTOREDPROCEDURE(T1.A, T1.B, T1.C, T1.D, T1.E)),
(Select V_3
 from MISTOREDPROCEDURE(T1.A, T1.B, T1.C, T1.D, T1.E)),
from TABLA1 T1
where T1.CONDICION = DATO

No sé si es la manera ideal de conseguir mi objetivo. A lo mejor alguien sabe de una solución mejor y probablemente más correcta.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #4  
Antiguo 26-09-2007
Avatar de duilioisola
[duilioisola] duilioisola is offline
Miembro Premium
 
Registrado: ago 2007
Ubicación: Barcelona, España
Posts: 1.734
Poder: 20
duilioisola Es un diamante en brutoduilioisola Es un diamante en brutoduilioisola Es un diamante en bruto
Se me olvidó que el procedimiento tiene que tener un alias (SP)...
Quizás ese sea el problema.
Código SQL [-]
select T1.A,T1.B, SP.V_1,SP.V_2,SP.V_3 from TABLA1 T1
join MiStoredProcedure(1,2,3,4,5) SP
where T1.CONDICION = DATO
De todos modos, la solución que has encontrado me parece correcta.
Si lo que expongo funciona, fíjate cual es la más rápida, óptima y "más mejor"
Responder Con Cita
  #5  
Antiguo 26-09-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
También lo probé con un alias para el Stored Procedure.

Lo que pasa es que no me permite pasar los parámetros como valores tomados de la TABLA1.
__________________
Piensa siempre en positivo !
Responder Con Cita
  #6  
Antiguo 26-09-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Sería conveniente saber las tablas, los campos y realmente para qué lo necesitas.

Yo esos V_1, V_2, etc se los pasaba directamente al SP, o bien hacía que el SP devuelva todas las columnas del registro, ya después solo pillaba los que me interase.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #7  
Antiguo 26-09-2007
Avatar de gluglu
[gluglu] gluglu is offline
Miembro Premium
 
Registrado: sep 2004
Ubicación: Málaga - España
Posts: 1.455
Poder: 21
gluglu Va por buen camino
Cachis, 20 minutos escribiendo una explicación detallada a Lepe, y al final me dá error al postear y se me ha perdido toda la explicación ...
__________________
Piensa siempre en positivo !
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Blob en Stored Procedure pache Firebird e Interbase 1 21-10-2006 01:11:09
Ayuda con Stored Procedure Sudamericano Firebird e Interbase 13 09-06-2004 01:26:32
Ver los Stored Procedure tgsistemas SQL 0 06-04-2004 17:18:22
Ayuda con Stored Procedure tgsistemas SQL 2 30-03-2004 23:30:40
Stored Procedure tgsistemas SQL 1 27-02-2004 13:10:33


La franja horaria es GMT +2. Ahora son las 00:56:09.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi