Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Bases de datos > Firebird e Interbase
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 08-09-2014
ungrande87 ungrande87 is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 42
Poder: 0
ungrande87 Va por buen camino
Mostrar datos de un store procedure con una vista??

Hola gente del foro, disculpen mi ignorancia pero tengo una consulta: como dice el titulo del tema es posible mostrar el resultado de un procedimiento almacenado desde una vista?. Estoy trabajando con Sql.
Responder Con Cita
  #2  
Antiguo 08-09-2014
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
Si la base de datos es Firebird y el procedimiento almacenado no tiene parámetros puedes hacer esto:

Código SQL [-]
CREATE VIEW VER_VERSION(
   VERSION)
AS
select VERSION
from dame_version

También puedes utilizar el procedimiento para obtener la información de un campo de la vista.
Código SQL [-]
CREATE VIEW VER_CODIGO_EAN13(
   ARTICULO,
   COD_BARRA)
AS
select a.articulo,
       (select cod_barra
        from dame_codigo_barras('EAN13', a.articulo))
from articulos a
Responder Con Cita
  #3  
Antiguo 08-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ungrande87.

Cita:
Empezado por ungrande87 Ver Mensaje
...Estoy trabajando con Sql.
Si, pero, ¿ Con cuál RDBMS ? (Oracle, Postgre SQL, Firebird, MySQL, MS SQL Server, ... )

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #4  
Antiguo 08-09-2014
ungrande87 ungrande87 is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 42
Poder: 0
ungrande87 Va por buen camino
Cita:
Empezado por ecfisa Ver Mensaje
Hola ungrande87.


Si, pero, ¿ Con cuál RDBMS ? (Oracle, Postgre SQL, Firebird, MySQL, MS SQL Server, ... )

Saludos
Perdon, olvide aclarar, con Interbase 6.0
Responder Con Cita
  #5  
Antiguo 08-09-2014
ungrande87 ungrande87 is offline
Miembro
NULL
 
Registrado: feb 2012
Posts: 42
Poder: 0
ungrande87 Va por buen camino
Cita:
Empezado por duilioisola Ver Mensaje
Si la base de datos es Firebird y el procedimiento almacenado no tiene parámetros puedes hacer esto:

Código SQL [-]
CREATE VIEW VER_VERSION(
   VERSION)
AS
select VERSION
from dame_version

También puedes utilizar el procedimiento para obtener la información de un campo de la vista.
Código SQL [-]
CREATE VIEW VER_CODIGO_EAN13(
   ARTICULO,
   COD_BARRA)
AS
select a.articulo,
       (select cod_barra
        from dame_codigo_barras('EAN13', a.articulo))
from articulos a
Gracias por la pronta respuesta, no tiene parámetros de entrada, solo de salida. Cuando intento hacerlo de la manera que dices, me tira un error indicando que no existe la tabla ...., sabiendo que el nombre del procedimiento al cual hago referencia esta correcto.

Última edición por ungrande87 fecha: 08-09-2014 a las 16:46:55.
Responder Con Cita
  #6  
Antiguo 08-09-2014
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola ungrande87.

Te ejemplifico, partiendo de la tabla:
Código SQL [-]
CREATE TABLE TEST (
  ID  INTEGER,
  CAMPO INTEGER
)
Generas la vista:
Código SQL [-]
CREATE OR ALTER VIEW V_TEST (
    ID,
    CAMPO )
AS
SELECT * FROM TEST
Y el procedimiento:
Código SQL [-]
SET TERM ^;
CREATE OR ALTER PROCEDURE PR_TEST
RETURNS ( RESULT INTEGER )
AS
BEGIN
  SELECT SUM( CAMPO ) AS TOTAL FROM V_TEST INTO RESULT;
  SUSPEND;
END^
SET TERM ;^
Mostrar resultado en una consulta:
Código SQL [-]
SELECT RESULT FROM PR_TEST

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 08-09-2014
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
Pon la declaración de tu procedimiento para que veamos su nombre, parámetros de entrada y salida.
Luego pon el script que crea la vista y que te da el error.

Supongo que no estás poniendo bien los nombres de los campos en la parte SELECT, o del procedimiento o algo así.
Quizás estás nombrando al procedimiento y a la vista con el mismo nombre.

En el ejemplo anterior, sería algo así:

Código SQL [-]
CREATE PROCEDURE DAME_VERSION
RETURNS (VERSION INTEGER)
AS
begin
...
end

CREATE VIEW VER_VERSION(
   VERSION)
AS
select VERSION
from dame_version
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
Como Incorporar un Store Procedure a mi base de datos??? pmtzg Firebird e Interbase 6 15-10-2008 19:02:55
Store procedure sancarlos MySQL 3 30-01-2008 19:51:49
Store Procedure sépoco MS SQL Server 5 10-01-2008 16:11:54
Store procedure php jorgito MySQL 1 06-06-2006 08:55:12
store procedure ronimaxh Firebird e Interbase 2 24-06-2003 20:20:22


La franja horaria es GMT +2. Ahora son las 13:24:15.


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