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

Renato - Eficaz Informatica renato em eficazinformatica.com.br
Qui Jul 8 09:52:58 -03 2010


Olá,

O campo 'titulo' está definido com o tamanho VARCHAR(10) e na sua PROCEDURE
SP_RECEBIDO_CLIENTE o select está retornando o valor CAST(FAT.CODFAT AS
VARCHAR(10))||'-0', que contando o tamanho dá um retorno de 12 digitos.
Espero ter ajudado.

-----Mensagem original-----
De: lista-bounces em firebase.com.br [mailto:lista-bounces em firebase.com.br] Em
nome de Levy Moreira
Enviada em: quinta-feira, 8 de julho de 2010 09:22
Para: FireBase
Assunto: [firebase-br] Erro sem solução...ate o momento

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
______________________________________________
FireBase-BR (www.firebase.com.br) - Hospedado em www.locador.com.br
Para saber como gerenciar/excluir seu cadastro na lista, use:
http://www.firebase.com.br/fb/artigo.php?id=1107
Para consultar mensagens antigas: http://firebase.com.br/pesquisa





Mais detalhes sobre a lista de discussão lista