Erro em Update com Sub-select

Delphi

26/03/2010

Caro colegas,   Alguém pode me ajudar a descobrir qual o problema com este comando ?  
 
UPDATE ESTOQUEFILIAL SET QUANTIDADE = (QUANTIDADE + 59)
WHERE COD_FILIAL = 1
AND COD_PROD = (SELECT COD_PROD FROM PRODUTOS WHERE COD_BARRA = '7894321711263')

Quando executo o mesmo, me retorna :   Unsuccessful execution caused by a system error that precludes
successful execution of subsequent statements.
internal gds software consistency check (cannot restore singleton select data (284), file: rse.cpp line: 3218).   O IbExpert fica meio louco e tenho q fechar no CTRL+ALT+DEL   Tenho certeza q o produto existe e se executo apenas o sub-select ele me retorna o COD_PROD = 1; Estou usando o FB 2.0.5;   Agradeço a ajuda dos colegas.   Marcello.
Marcello Cainelli

Marcello Cainelli

Curtidas 0

Respostas

Emerson Nascimento

Emerson Nascimento

26/03/2010

aparentemente o erro se dá por conta de a sub-select retornar mais de um registro naquela condição.
então, tente:

UPDATE ESTOQUEFILIAL SET
   QUANTIDADE = (QUANTIDADE + 59)
WHERE
   COD_FILIAL = 1
   AND COD_PROD IN (SELECT COD_PROD FROM PRODUTOS WHERE COD_BARRA = '7894321711263')


GOSTEI 0
Marcello Cainelli

Marcello Cainelli

26/03/2010

 Perfeito Emerson.   Um detalhe é q no Firebird 1.5 funcionava normalmente. Mas resolveu o problema.   Muito obrigado.
GOSTEI 0
POSTAR