Ver Mensaje Individual
  #9  
Antiguo 14-09-2004
aurafern aurafern is offline
Miembro
 
Registrado: dic 2003
Posts: 34
Reputación: 0
aurafern Va por buen camino
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

Última edición por aurafern fecha: 14-09-2004 a las 20:55:29.
Responder Con Cita