akela
13-12-2007, 20:18:37
saludos amigos:
estoy utilizando INTERBASE 7.0 cree un Procedimiento Almacenado para obtener datos de algunas tablas.
ahora tengo que hacer que ese procediemineto recupere datos de todas las tablas, las tablas tienen un nombre similar que es el Siguiente:
NOMaammcc
MOVaammcc
donde aa es el año
mm es el mes
cc es el consecutivo de la tabla
como ven los ultimos 4 caracteres varían, había pensado en pasar el nombre de la tabla como un parametro (en informix si se puede hacer) pero IB me marca un error,
¿alguien sabe como podría recorrer todas las tablas de mi BD sin tener que hacer un PA para cada una? en otras palabras ¿alguien sabe como hacer para poner un nombre de tabla dinámico en un PA?
saludos.
PD. este el el PA:
Código SQL [-] (http://www.clubdelphi.com/foros/#)
LTER PROCEDURE ACUMULA_CPTOS
RETURNS
(rfc char(13),cpto char(2),pd char(1), importe numeric(15,2) )
AS
DECLARE VARIABLE RFCS char(13);
DECLARE VARIABLE cpt char(2);
DECLARE VARIABLE tipo char(1);
DECLARE VARIABLE impo numeric(15,2);
BEGIN
FOR SELECT rfc,concepto, perc_ded, sum(importe) FROM nom070100 n, mov070100 m WHERE n.id=m.id_nom
GROUP by rfc,concepto,perc_ded ORDER by RFC, perc_ded, concepto
INTO
:rfcs,:cpt,:tipo,:impo DO
BEGIN
RFC = :rfcs;
cpto = :cpt;
pd = :tipo;
importe = :impo;
SUSPEND;
END
END
estoy utilizando INTERBASE 7.0 cree un Procedimiento Almacenado para obtener datos de algunas tablas.
ahora tengo que hacer que ese procediemineto recupere datos de todas las tablas, las tablas tienen un nombre similar que es el Siguiente:
NOMaammcc
MOVaammcc
donde aa es el año
mm es el mes
cc es el consecutivo de la tabla
como ven los ultimos 4 caracteres varían, había pensado en pasar el nombre de la tabla como un parametro (en informix si se puede hacer) pero IB me marca un error,
¿alguien sabe como podría recorrer todas las tablas de mi BD sin tener que hacer un PA para cada una? en otras palabras ¿alguien sabe como hacer para poner un nombre de tabla dinámico en un PA?
saludos.
PD. este el el PA:
Código SQL [-] (http://www.clubdelphi.com/foros/#)
LTER PROCEDURE ACUMULA_CPTOS
RETURNS
(rfc char(13),cpto char(2),pd char(1), importe numeric(15,2) )
AS
DECLARE VARIABLE RFCS char(13);
DECLARE VARIABLE cpt char(2);
DECLARE VARIABLE tipo char(1);
DECLARE VARIABLE impo numeric(15,2);
BEGIN
FOR SELECT rfc,concepto, perc_ded, sum(importe) FROM nom070100 n, mov070100 m WHERE n.id=m.id_nom
GROUP by rfc,concepto,perc_ded ORDER by RFC, perc_ded, concepto
INTO
:rfcs,:cpt,:tipo,:impo DO
BEGIN
RFC = :rfcs;
cpto = :cpt;
pd = :tipo;
importe = :impo;
SUSPEND;
END
END