[firebase-br] Erro sem solução...ate o momento

Levy Moreira levymoreira.ce em gmail.com
Qui Jul 8 09:21:37 -03 2010


por amor de Deus sei que não é de bom tom implorar, mas isso é caso de vida
ou morte tenho um um relatorio com o seguinte sql:
      Add(
        'SELECT CAX.*, (CAX.VALCAX + CAX.JURCAX) AS VALTOT, CLI.NOME01,
VEN.NOMRED ' +
        'FROM SP_RECEBIDO_CLIENTE CAX ' +
        ' LEFT JOIN CLI ON (CLI.CODCLI = CAX.CLICAX) ' +
        ' LEFT JOIN VEN ON (VEN.CODVEN = CAX.FUNCAX) ' +
        'WHERE (CAX.LOJCAX IS NOT NULL) ' +
          Loja.SQLFilter('CAX.LOJCAX') +
          Periodo.SQLFilter('CAX.DATCAX') +
          Operador.SQLFilter('CAX.FUNCAX') +
          TipoCliente.SQLFilter('CLI.TPCCLI') +
          lkpTipoDocumento.SQLFilter('CAX.TIPDOC') +
          cbStatusCliente.SQLFilter);
      case cbStatusPgmto.ItemIndex of
        0: Add('AND (CAX.DATCAX <= CAX.DATVEN) ');
        1: Add('AND (CAX.DATCAX > CAX.DATVEN) ');
      end;
      Add('ORDER BY CAX.LOJCAX');
      if cbTipoRelatorio.ItemIndex = 1 then
        Add(', CAX.DATCAX, CLI.NOME01') else
        Add(', VEN.NOMRED, CLI.NOME01, CAX.DATCAX');
    end;

O codigo da SP_RECEBIDO_CLIENTE:
SET TERM ^ ;

CREATE OR ALTER PROCEDURE SP_RECEBIDO_CLIENTE (
    quites char(1) = 'N')
returns (
    tipcax char(3),
    lojcax smallint,
    fatcax integer,
    funcax smallint,
    clicax integer,
    datemi date,
    datven date,
    datcax date,
    titulo varchar(10),
    tipdoc char(2),
    vencax smallint,
    fpgcax smallint,
    valcax decimal(15,2),
    jurcax decimal(15,2),
    atraso smallint)
as
BEGIN
    FOR
    SELECT
        FAT.LOJFAT, FAT.CODFAT, CAX.FUNCAX, FAT.CLIFAT, FAT.DATFAT,
FAT.DATFAT,
        CAX.DATCAX, CAST(FAT.CODFAT AS VARCHAR(10))||'-0', FPG.TIPFPG,
FAT.VENFAT,
        CAX.FPGCAX,
        CAX.VALCAX, 0, 0
    FROM SP_FORMAS_PGMTO_CAIXA('N') CAX
        LEFT JOIN FAT ON (FAT.CODFAT = CAX.OBJCAX)
        LEFT JOIN FPG ON (FPG.CODFPG = CAX.FPGCAX)
    WHERE (CAX.OCXCAX = 'VP') AND (FPG.AVISTA = 'S')
    INTO
        :LOJCAX, :FATCAX, :FUNCAX, :CLICAX, :DATEMI, :DATVEN, :DATCAX,
        :TITULO, :TIPDOC, :VENCAX, :FPGCAX, :VALCAX, :JURCAX, :ATRASO DO
    BEGIN
        TIPCAX = 'ENT';
        SUSPEND;
    END

    FOR
    SELECT
        CON.LOJCON, CON.NOTCON, CAX.FUNCAX, CON.PESCON, CON.DATEMI,
CON.DATVEN,
        CAX.DATCAX, CON.TITULO, CON.TIPDOC, CON.VENCON, CAX.FPGCAX,
CAX.VALCAX,
        CAX.JURCAX, CAX.DATCAX - CON.DATVEN
    FROM SP_FORMAS_PGMTO_CAIXA('N') CAX
        LEFT JOIN CON ON (CON.CODCON = CAX.OBJCAX)
    WHERE (CAX.OCXCAX = 'RC') AND (CON.TIPCON = 'R') AND ((:QUITES <> 'S')
OR (CON.VALPAG >= CON.VALVEN))
    INTO
        :LOJCAX, :FATCAX, :FUNCAX, :CLICAX, :DATEMI, :DATVEN, :DATCAX,
        :TITULO, :TIPDOC, :VENCAX, :FPGCAX, :VALCAX, :JURCAX, :ATRASO DO
    BEGIN
        TIPCAX = 'PRE';
        SUSPEND;
    END
END^

SET TERM ; ^

GRANT EXECUTE ON PROCEDURE SP_FORMAS_PGMTO_CAIXA TO PROCEDURE
SP_RECEBIDO_CLIENTE;

GRANT SELECT ON FAT TO PROCEDURE SP_RECEBIDO_CLIENTE;

GRANT SELECT ON FPG TO PROCEDURE SP_RECEBIDO_CLIENTE;

GRANT SELECT ON CON TO PROCEDURE SP_RECEBIDO_CLIENTE;

GRANT EXECUTE ON PROCEDURE SP_RECEBIDO_CLIENTE TO SYSDBA;

O que acontece é que ele funcionava ate ontem e hoje esta retornando este
erro:

Arithmetic overflow or division by zero has occurred.
arithmetic exception, numeric overflow, or string truncation.
string right truncation.
At procedure 'SP_RECEBIDO_CLIENTE' line: 52, col: 9.

Se alguem poder me dar uma luz....é um relatorio de tituloas recebidos então
estão me matando...

-- 
Levy Moreira



Mais detalhes sobre a lista de discussão lista