PDA

Ver la Versión Completa : Parametros De Salida En Procedimientos Almacenados En Firebird


dalia
21-05-2007, 20:44:14
HOLA A TODOS!:)


TENGO UN PROBLEMITA CON UN PROCEDIMIENTO ALMACENADO EN FIREBIRD, Y ES K TENGO DOS PARAMETROS DE SALIDA PERO AL EJECUTAR MI PROCEDIMIENTO ME MANDA NULL A MIS 2 PARAMETROS, COSA K NO DEBERIA HACER, PERO NO SE EN K ME HE EQUIVOCADO, AL PRINCIPIO PENSE QUE ESTABA MAL LA FORMA EN QUE RECIBO EL VALOR DE LOS PARAMETROS DE SALIDA Y ES K TRABAJO CON C#, PERO DESPUES ME FUI A EJECUTAR DIRECTAMENTE MI PROCEDIMIENTO A IBEXPERT Y ME MANDA NULL, ANTERIORMENTE HABIA RECIBIDO PARAMETROS DE SALIDA Y NO HABIA PROBLEMA PERO LO ESTABA HACIENDO CON UN FOR SELECT PARA MULTIPLE FILAS K EXTRAIA DE UNA TABLA Y AHI NO ME MARCABA NINGUN PROBLEMA SI DEVOLVIA TODOS LOS VALORES K REQUERIA!

SI ALGUIEN PUDIERA AYUDARME LO AGRADECERIA DE FAVOR!

ESTE ES EL CODIGO QUE USO EN MI SP, de hecho si lo ejecuta bien e inserta solo k no me regresa ningun valor y no c cual sea mi error.


CREATE PROCEDURE SP_CONTA_POLI (
fechai date,
tipo_polizai varchar(30),
monedai varchar(30),
descrip_polizai varchar(200),
tipo char(1))
returns (
docto_co_ido integer,
monedao integer)
as
declare variable tipo_polizav integer;
declare variable polizav varchar(9);
declare variable fecha_serv timestamp;
BEGIN
SELECT current_timestamp from rdb$database into :fecha_serv;

if(:tipo='1') then
begin
docto_co_ido= GEN_ID(ID_DOCTOS,1);

SELECT TIPO_POLIZA_ID FROM tipos_polizas
WHERE NOMBRE =:tipo_polizai INTO :TIPO_POLIZAV;

SELECT CONSECUTIVO FROM tipos_polizas_det
WHERE TIPO_POLIZA_ID =:tipo_polizav INTO :polizav;

/*es aqui donde le asigno a mi parametro de salida*/
SELECT MONEDA_ID FROM MONEDAS
WHERE NOMBRE =:monedai INTO :monedao;

INSERT INTO DOCTOS_CO
VALUES(:docto_co_ido, :TIPO_POLIZAV, :polizav, :fechai, :monedao, 1,
'N', 'N', 'S', 'N', 'S', :descrip_polizai,
'N', 'CO', null, null, 'SYSDBA', :fecha_serv, 'SYSDBA',null);
end
END


de antemano mil gracias!

dalia
21-05-2007, 21:30:16
Hijoles K Pena, Gracias Ya Resolvi Mi Problema, :d Me Faltaba El Suspend; Al Final, Se Me Fue La Onda!