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!
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!