tengo un pequeño problema con unos procedimientos, no me insertan los datos.
el procedimiento se encuentra anidado y consta de tres partes, siendo el ultimo el que efectua el insert.
proc 1
Código SQL
[-]
CREATE PROCEDURE I_POSICION_COTIZACIONMONEDA (
VE_IDSUCURSALAGENCIA INTEGER)
AS
declare variable v_idCotizacionMoneda integer;
declare variable v_Fecha date;
BEGIN
v_Fecha=extractdate(cast("NOW" AS DATE));
for select id_cotizacionmoneda
from cotizacionesmonedas
where estado='A'
and id_tipocotizacion=1
into :v_idCotizacionMoneda
do begin
execute procedure i_posicion_tipoespecie :ve_idsucursalagencia,:v_idCotizacionMoneda,:v_fecha;
end
END
proc 2
Código SQL
[-]CREATE PROCEDURE I_POSICION_TIPOESPECIE (
VE_IDSUCURSALAGENCIA INTEGER,
VE_IDCOTIZACIONMONEDA INTEGER,
VE_FECHA DATE)
AS
declare variable v_idTipoEspecie integer;
BEGIN
for select id_tipoespecie
from tiposespecies
where estado='A'
into :v_idTipoEspecie
do begin
execute procedure i_posicion_caja :VE_IDSUCURSALAGENCIA,:v_idTipoEspecie,:VE_IDCOTIZACIONMONEDA,:ve_fecha;
end
END
proc 3
Código SQL
[-]CREATE PROCEDURE I_POSICION_CAJA (
VE_IDSUCURSALAGENCIA INTEGER,
VE_IDTIPOESPECIE INTEGER,
VE_IDCOTIZACIONMONEDA INTEGER,
VE_FECHA DATE)
AS
declare variable v_idCaja integer;
declare variable v_EstadoPosicion varchar(1);
declare variable v_CodCaja varchar(4);
declare variable v_idPosicion integer;
BEGIN
for select id_caja,codigo
from cajas
where estado='A'
into :v_idCaja,:v_CodCaja
do begin
if(:v_CodCaja='9999')then
v_EstadoPosicion='P';
else
v_EstadoPosicion='L';
v_idPosicion=0;
if((:v_idPosicion=0)or(:v_idPosicion is null))then
insert into posiciones(id_posicion,id_sucursalagencia,
id_tipoespecie,id_caja,id_cotizacionmoneda,estadoPosicion,estado,fecha,
otrosimpuestos,iva,actoDocumento,gastoCobrado,resultadoAcumulado,resultadoDia,
entradaFondo,salidaFondo,
debitoPosicionME,debitoPosicionMN,
creditoPosicionME,creditoPosicionMN,
saldoPosicionME,saldoPosicionMN,
saldoCajaME,saldoCajaMN,
creditoCajaME,creditoCajaMN,
debitoCajaME,debitoCajaMN)
values(gen_id(id_posicion,1),:VE_IDSUCURSALAGENCIA,
:VE_IDTIPOESPECIE,:v_idCaja,:VE_IDCOTIZACIONMONEDA,:v_EstadoPosicion,'A',:ve_fecha,
0,0,0,0,0,0,
0,0,
0,0,
0,0,
0,0,
0,0,
0,0,
0,0);
end
END
en este ultimo se deberia efectuar la insercion dentro de la tabla especificada.
alguien puede corregirme o decirme como introdusco todo esto dentro de un solo procedimiento porque a mi me saltaba un error al tener varios for anidados dentro de un mismo procedimiento, pienso que este era su problema
gracias