Hola!
De nuevo yo.
Llevo dos dias tratando de que este procedimiento se ejecute correctamente. Y aunque ustedes no tienen la culpa de mi ignorancia en el tema
, solicito urgente ayuda!!
Ya he mirado todos los foros que tienen que ver con el paso de parametros a procedimientos almacenados. Trabajo con delphi y Firebird 1.5 (que en la documentación ya dice que tiene solucionado el problema), sin embargo, compilo el siguiente procedimiento y no saca error, pero cuando lo llamo desde delphi pasándole los siguientes parámetros:
empresa= ' AND E.ID_EMPRESA =1 '
sucursal= ' AND E.ID_SUCURSAL=1 '
MODELO=4
NO_RANGO=4
PFECHA= 09/09/2004
PVENDEDOR=''
PZONA=''
pcuenta=''
PTERCERO=' AND E.ID_TERCERO=1 '
Arroja el error: General Sql error, Column unknown SEP
Código SQL
[-]
create PROCEDURE CARTERA_PROVEEDORES_PROC
(
EMPRESA VARCHAR(100),
SUCURSAL VARCHAR(100),
MODELO VARCHAR(15),
NO_RANGOS INTEGER,
PFECHA TIMESTAMP,
PVENDEDOR VARCHAR(100),
PZONA VARCHAR(100),
PCUENTA VARCHAR(100),
PTERCERO VARCHAR(100)
)
RETURNS
(
ID_EMPRESA VARCHAR(2),
ID_SUCURSAL VARCHAR(2),
ID_TIPO VARCHAR(3),
NUMERO INTEGER,
CUOTA INTEGER,
ID_TERCERO INTEGER,
ID_SUCURSAL_TERCERO INTEGER,
SALDO DOUBLE PRECISION,
DESCRIP1 VARCHAR(30),
DESCRIP2 VARCHAR(30),
DESCRIP3 VARCHAR(30),
RANGO1 DOUBLE PRECISION,
RANGO2 DOUBLE PRECISION,
RANGO3 DOUBLE PRECISION,
FECHA_DOC TIMESTAMP,
ID_AUXILIAR VARCHAR(12),
VENCIMIENTO TIMESTAMP,
DIAS DOUBLE PRECISION,
RANGO4 DOUBLE PRECISION,
DESCRIP4 VARCHAR(30),
RANGO5 DOUBLE PRECISION,
DESCRIP5 VARCHAR(30)
)
AS
DECLARE VARIABLE ID_MODELO varchar(15);
DECLARE VARIABLE ID_RANGO integer;
DECLARE VARIABLE ID_DESCRIPCION_RANGO varchar(10);
DECLARE VARIABLE DESCRIPCION_RANGO varchar(50);
DECLARE VARIABLE DESDE integer;
DECLARE VARIABLE HASTA integer;
DECLARE VARIABLE TIPO_RANGO varchar(10);
DECLARE VARIABLE NUMERO_RANGOS integer;
DECLARE VARIABLE TITULO varchar(50);
DECLARE VARIABLE Sql_INS VARCHAR(1024);
begin
FOR SELECT RANGO_REP_TERCERO_DET.ID_MODELO,
RANGO_REP_TERCERO_DET.ID_RANGO,
RANGO_REP_TERCERO_DET.ID_DESCRIPCION_RANGO,
RANGO_REP_TERCERO_DET.DESCRIPCION_RANGO,
RANGO_REP_TERCERO_DET.DESDE,
RANGO_REP_TERCERO_DET.HASTA,
RANGO_REP_TERCERO_DET.TIPO_RANGO,
RANGO_REP_TERCERO.NUMERO_RANGOS,
RANGO_REP_TERCERO.DESCRIPCION AS TITULO
from RANGO_REP_TERCERO_DET,RANGO_REP_TERCERO
where RANGO_REP_TERCERO_DET.ID_MODELO=RANGO_REP_TERCERO.ID_MODELO AND RANGO_REP_TERCERO.ID_MODELO=:modelo
INTO :ID_MODELO,
:Id_rango,
:ID_DESCRIPCION_RANGO,
ESCRIPCION_RANGO,
ESDE,
:HASTA,
:TIPO_RANGO,
:NUMERO_RANGOS,
:TITULO
DO
BEGIN
FOR EXECUTE STATEMENT
'SELECT SUM(e.DEBITO-e.CREDITO) AS SALDO, e.ID_AUXILIAR,e.ID_EMPRESA_CRUCE, e.ID_SUCURSAL_CRUCE,e.ID_TIPO_DOC_CRUCE, e.numero_cruce, E.CUOTA_CRUCE,
d.fecha, d.vencimiento,e.id_tercero,e.ID_SUCURSAL_TERCERO FROM CUENTAS_POR_TERCERO e , cuentas_por_tercero d
where e.ID_EMPRESA_CRUCE=d.ID_EMPRESA and e.ID_SUCURSAL_CRUCE=d.ID_SUCURSAL AND E.CUOTA_CRUCE=D.CUOTA
and e.ID_TIPO_DOC_CRUCE= d.id_tipo_doc and e.numero_cruce=d.numero ' ||:EMPRESA ||:SUCURSAL||
'and (' ||fecha || ' - d.vencimiento)>=' ||:desde ||' '|| 'and (' ||fecha|| ' - d.vencimiento)<='
||:hasta||' '||tercero ||
'GROUP BY e.ID_AUXILIAR,e.ID_EMPRESA_CRUCE, e.ID_SUCURSAL_CRUCE,e.ID_TIPO_DOC_CRUCE,
e.numero_cruce, E.CUOTA_CRUCE , d.fecha, d.vencimiento,e.id_tercero,e.ID_SUCURSAL_TERCERO
having SUM(e.DEBITO-e.CREDITO)<>0'
into :saldo,:id_auxiliar,:id_empresa,:id_sucursal,:id_tipo,:numero,:cuota,:fecha_DOC,:vencimiento,:id_ter cero,:id_sucursal_tercero
DO
BEGIN
dias = fecha - :vencimiento;
suspend;
END
end
end
por favor ayudenme ya no se que hacer!
de antemano gracias