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 Buscar Temas de Hoy Marcar Foros Como Leídos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-01-2008
Blackspike Blackspike is offline
Miembro
 
Registrado: dic 2006
Ubicación: Mallorca, Baleares
Posts: 29
Poder: 0
Blackspike Va por buen camino
Ayuda con Stored Procedure Firebird

Buenos dias a todos y feliz año.

Queria hacer una consulta a los mas expertos con Firebird, el problema que tengo es que estoy intentando hacer un Stored Procedure con Firebird, estoy usando el IBExpert Personal Edition, y lo que estoy intentando hacer pero no consigo que me funcione es crear una select y que sea devuelta dentro de un cursor, es decir un estilo como el oracle.

create procedure NEW_PROCEDURE (p_cursor ref cursor)
IS
BEGIN
OPEN p_cursor FOR
SELECT *
FROM TABLA;
END;

He estado investigando con la ayuda del señor google, pero no e conseguido encontrar nada, por eso me dirijo a la gente que los utiliza.

De antemano muchas gracias pos vuestra ayuda.
Responder Con Cita
  #2  
Antiguo 07-01-2008
Avatar de Kipow
Kipow Kipow is offline
Miembro
 
Registrado: abr 2006
Ubicación: Guatemala
Posts: 329
Poder: 18
Kipow Va por buen camino
En Firebird/Interbase lo que podes hacer es crear procedimientos almacenados que te regresen multiples filas, con la ventaja de poder utilizar los procedimientos en consultas SQL.

Por ejemplo
Código:
CREATE PROCEDURE Miprocedure(param1 type1, param2 type2)
returns(campo1 type1,
           campo2 type2
           etc.)
begin
   FOR
       SELECT campo1, campo2
       FROM tabla A
       WHERE A.campo1 = param1 and A.campo2 = param2
       INTO :campo1, campo2
   BEGIN
      suspend;
   END
end
Ejemplo de uso

Código:
   SELECT campo1, campo2
   FROM MiProcedure(:parametro1, :parametro2)
Responder Con Cita
  #3  
Antiguo 07-01-2008
Blackspike Blackspike is offline
Miembro
 
Registrado: dic 2006
Ubicación: Mallorca, Baleares
Posts: 29
Poder: 0
Blackspike Va por buen camino
Muchas Gracias por la respuesta.

He probado el sistema que me has comentado y me funciona bien.

Lo que yo me preguntaba era si es posible realizar un procedimiento que devuelda directamente un cursor con los datos sin tener que hacer despues de la creacion del procedimiento la select que llama a dicho procedimiento.

No se si me e explicado bien jejeje.

Pero muchas gracias por la respuesta.
Responder Con Cita
  #4  
Antiguo 07-01-2008
Avatar de jachguate
jachguate jachguate is offline
Miembro
 
Registrado: may 2003
Ubicación: Guatemala
Posts: 6.254
Poder: 27
jachguate Va por buen camino
Lo dicho por Kipow es muy cierto. Para complementar, solo comentar que en Firebird no existe ningún tipo equivalente al ref_cursor de Oracle.

Recuerdo haber escuchado sobre un proyecto llamado Firacle, o algo así... que pretendía implementar un diccionario de datos idéntico al de oracle, de manera que muchas aplicaciones realizadas para este corrieran sin problemas en firebird, quizás ellos se han planteado implementar algunas de estas cosas, como los ref_cursors o los packages.

No puedo comentar mas, ni se si el proyecto sigue activo pues no le doy seguimiento.

Hasta luego.

__________________
Juan Antonio Castillo Hernández (jachguate)
Guía de Estilo | Etiqueta CODE | Búsca antes de preguntar | blog de jachguate
Responder Con Cita
  #5  
Antiguo 07-01-2008
Blackspike Blackspike is offline
Miembro
 
Registrado: dic 2006
Ubicación: Mallorca, Baleares
Posts: 29
Poder: 0
Blackspike Va por buen camino
Muchas Gracias por la aclaracion y por vuestra ayuda.
Responder Con Cita
Respuesta


Herramientas Buscar en Tema
Buscar en Tema:

Búsqueda Avanzada
Desplegado

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
Ayuda con Stored Procedure Fita Firebird e Interbase 2 28-11-2007 02:28:03
Ayuda con Stored Procedure gluglu Conexión con bases de datos 6 26-09-2007 15:20:53
Ayuda con Stored Procedure Sudamericano Firebird e Interbase 13 09-06-2004 02:26:32
Ver los Stored Procedure tgsistemas SQL 0 06-04-2004 18:18:22
Ayuda con Stored Procedure tgsistemas SQL 2 31-03-2004 00:30:40


La franja horaria es GMT +2. Ahora son las 17:07:27.


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