PDA

Ver la Versión Completa : Procedure


ozegarra
07-12-2007, 16:31:21
Hola, estoy tratando de crear un store procedure que me devuelva varios registros pero no se como.
Favor alguien me pueda ayudar.
Estoy usando "Sql Manager 2005 lite for InterBase/FireBird"
Esto es lo que tengo y me da un error.

Muchas gracias.
Oscar


CREATE PROCEDURE VER_ALMACENES_X_PLANTA(
PLANTA CHAR(2))
RETURNS(
CODIGO CHAR(2),
DESCRIPCION VARCHAR(100))
AS
begin
for select a.ALM_CODIGO, b.ALM_DESCRIPCION
from planta_almacenes a, almacenes b
where a.PLAN_CODIGO = :Planta
and a.ALM_CODIGO = b.ALM_CODIGO
into :Codigo, :Descripcion;
do Suspend;
end;

RolphyReyes
07-12-2007, 16:37:18
Saludos.

Prueba a utilizar las etiquetas para que tu codigo se vea mejor.

Lo que te hace falta es BEGIN END despues del DO y el SUSPEND dentro del bloque anterior.

Hasta luego.

ozegarra
07-12-2007, 17:01:59
Gracias RolphyReyes por la respuesta pero la verdad que no entendi que me quisiste decir.

La verdad soy nuevo en Delphi y FireBird y lo poco que se es lo que encuentro en internet.

RolphyReyes
07-12-2007, 18:51:15
Saludos.

Cambie un poco tu sentencia y a esto es que me refiero


FOR SELECT A.ALM_CODIGO, B.ALM_DESCRIPCION
FROM PLANTA_ALMACENES A
INNER JOIN ALMACENES B ON A.ALM_CODIGO = B.ALM_CODIGO
WHERE A.PLAN_CODIGO = :PLANTA
INTO :CODIGO, :DESCRIPCION
DO
BEGIN
SUSPEND;
END;


Hasta luego.

ozegarra
07-12-2007, 22:48:58
gracias por el intento pero tampoco funciona. Sigue saliendo el mismo error. Lo raro es que antes que le ponga el for...do no salio error al compilar, solo salia error al compilar por querer mostrar multiples filas.

Si alguien sabes que puedo estar haciendo mal, por favor ayudenme, sino voy a tener que renunciar al trabajo.
:_(

Saludos y Gracias
Oscar

ozegarra
07-12-2007, 23:04:33
soy un vurro, gracias rony, el ultimo ";" no iba por eso el error.

Gracias.
Oscar