Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > MS SQL Server
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 09-02-2005
cso2000 cso2000 is offline
Miembro
 
Registrado: may 2003
Ubicación: Guadalajara, Jalisco
Posts: 108
Poder: 21
cso2000 Va por buen camino
Ejecutar SP en Vista

Saludos a Todos:

Tengo un problema con una vista en SQL Server, el caso es que de una consulta ocupo que uno de los campos obtenga el valor de ejecutar un Stored Procedure algo asi:

Código:
Create view MiVista
AS
Select 
  Identificador,
  Resultado = ( EXEC SP_CalculaResultado Identificador )
  From MiTabla
No se si esto sea posible, espero que me puedan ayudar si es que tengo un error en la implementacion o si puedo hacer esto de otra forma.

Gracias de Antemano
Responder Con Cita
  #2  
Antiguo 09-02-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Prueba con:

Código SQL [-]
Create view MiVista
AS
Select 
  Identificador,
  ( select * from SP_CalculaResultado (parámetros) ) as Resultado
  From MiTabla


Saludos...
Responder Con Cita
  #3  
Antiguo 09-02-2005
cso2000 cso2000 is offline
Miembro
 
Registrado: may 2003
Ubicación: Guadalajara, Jalisco
Posts: 108
Poder: 21
cso2000 Va por buen camino
Gracias por responder MAEYANES

probe tu sugerencia y me genera este error

Invalid object name 'SP_CalculaResultado'

No se que pueda ser
Responder Con Cita
  #4  
Antiguo 09-02-2005
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 23
maeyanes Va por buen camino
Como se llama el parámetro de salida de tu procedimiento? Trata de usarlo en vez del *; otra cosa, tiene rato que no uso MS SQL Server, por lo que la sintaxis para llamar a un procedimiento vía un select a lo mejor no es la misma y no la recuerdo...

Otra cosa que podrías intentar, y no estoy seguro que funcione sería llamarlo con el EXEC, pero así:

Código SQL [-]
Create view MiVista
AS
Select 
  Identificador,
  ( EXEC SP_CalculaResultado Identificador ) as Resultado
  From MiTabla
Saludos...
Responder Con Cita
  #5  
Antiguo 09-02-2005
cso2000 cso2000 is offline
Miembro
 
Registrado: may 2003
Ubicación: Guadalajara, Jalisco
Posts: 108
Poder: 21
cso2000 Va por buen camino
Gracias de nuevo,

ya probe lo que me recomendaste y no logro hacer que funcione, de cualquier forma estoy investigando lo de la sintaxis

Gracias
Responder Con Cita
  #6  
Antiguo 10-02-2005
cso2000 cso2000 is offline
Miembro
 
Registrado: may 2003
Ubicación: Guadalajara, Jalisco
Posts: 108
Poder: 21
cso2000 Va por buen camino
Ya resolvi parte del problema:

Código SQL [-]
Create view MiVista
AS
Select 
  Identificador,
  ( select * from SP_CalculaResultado (parámetros) ) as Resultado
  From MiTabla

Cambie el SP por una Funcion que me regresa un objeto de tipo tabla y funciona bien en este contexto

Código SQL [-]

  select * from SP_CalculaResultado (  1154 )

donde 1154 es el parametro que ocupo.

solo que en la vista tengo el siguiente error

Código SQL [-]
Create view MiVista
AS
Select 
  Identificador,
  ( select * from SP_CalculaResultado (t.CampoId) ) as Resultado
  From MiTabla

me genera un error en la parte de los parametos.
prove varias formas de pasarle el parametro y nada me funciono

lo curioso es que de esta forma si funciona

Código SQL [-]
Create view MiVista
AS
Select 
  Identificador,
  ( select * from SP_CalculaResultado (1154) ) as Resultado
  From MiTabla

La cosa es que asi no me sirve por que yo ocupo que la llamada a la funcion se ejecute con el parametro del campo id del registro en curso

Si tienen alguna idea les agrdesco que me la comenten.

Saludos.
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


La franja horaria es GMT +2. Ahora son las 20:39: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