[firebase-br] Erro utilizando BLOB dentro de SP

andre conrado acf.andre em gmail.com
Qua Ago 3 11:42:46 -03 2011


Senhores, hoje começou a ocorrer um erro em uma SP de atualização da folha
de pagamento. Fiz um resumo da SP. Quanto executo, o FB me retorna  mensagem
de erro:

BLOB not found, Line 267, col 11.

Esta linha refere-se a atualização da tabela LANCAMENTO_DAS_CONTAS. O erro
ocorre na segunda passada dentro do loop. Inclui uma linha de exceção:

EXCEPTION ERROR_1 sHistorico;

Para poder visualizar o conteúdo da variável sHistorico e o FB me retorna
com o mesmo erro. Me fazendo entender que algo está errado com o
processamento desta variável.

Gostaria da ajuda dos amigos quanto a algum outro tipo de verificação que eu
possa fazer para descobrir o que está errado. Afinal, estava funcionando a
anos e agora com a mudança de FB 2.1 para FB 2.5 isso começou a ocorre, mas
não imediatamente.

No momento tive que improvisa, já que não quero que ninguém fique se salário
e eu sem fígado (rs). Mudei o tipo da variável sHistorico de BLOB para
VARCHAR(2000) e a SP funcionou sem mais problemas. Mas eu quero este tipo
porque no futuro o tamanho
pode me dar problemas.


CREATE TABLE LANCAMENTO_DAS_CONTAS
(
  LANCAMENTO                                INTEGER         NOT NULL,
  CONTA                                           INTEGER,
  DATA                                             TIMESTAMP         DEFAULT
'now',
  DOCUMENTO                                 INTEGER,
  HISTORICO                                     BLOB SUB_TYPE 1 SEGMENT SIZE
80,
  QUANTIDADE                                 DOUBLE PRECISION,
  SALDO                                           DOUBLE PRECISION,
  COTA                                             SMALLINT,
  VALOR                                           NUMERIC( 18, 2),
  FINANCEIRO                                   NUMERIC( 18, 2),
  FORMA_DE_PAGAMENTO              INTEGER,
 CONSTRAINT LANCAMENTO_DAS_CONTAS PRIMARY KEY (LANCAMENTO)
);


CREATE PROCEDURE P_FOLHA_APROVACAO(...) AS

DECLARE VARIABLE sHistorico BLOB;

BEGIN

    WHILE (nPos < 15)
    BEGIN
            sHistorico = '2ª Quinzena';

            UPDATE Lancamento_das_contas SET Data = :dtLancamento, Valor =
:nValue, Historico = :sHistorico WHERE Lancamento = :iLancamento;
    END

END

-- 
Um Abraço,
André Conrado.

055 21 9176-7013 - Claro



Mais detalhes sobre a lista de discussão lista