[firebase-br] Atualizar Tabela - Stored Procedure

Forum ASR & Associados forum em asreassociados.com.br
Sex Jan 6 14:37:20 -03 2006


Caro Salatiel,

Seria melhor se vc enviasse o metadata completo da stored procedure, pq 
pode ter algum erro no cabeçalho da mesma, e junto a chamada dentro
do delphi ....

Esse erro é típico quando é feita uma passagem de valores de tipos 
diferentes, por exemplo

quando vc tenta colocar um varchar(10) em um varchar(5) ....

eu faria da seguinte forma:

for select CODIGO, COALESCE(QUANTIDADE,0) from inventario
    into :_CODIGO, :_QUANTIDADE
do
begin
  update Estoque
  set QUANTIDADE   = :_QUANTIDADE
  where codigo = :_CODIGO;
end

esse função coalesce só se encontra disponível a partir do firebird 1.5, o que ela faz
quando o valor quantidade for nulo, ele atribuí ZERO.

Abraços,

Airton Salviano Ramos de Souza
Analista de Sistemas
www.asreassociados.com.br

Salatiel Venâncio wrote:

>Tudo bem pessoal?
>
>Estou tentando criar uma stored procedure da seguinte forma:
>
>Atualizar a tabela estoque a partir da tabela do inventario. Mas ocorre
>o seguinte erro.
>
>== Arithmetic overflow or division by zero has occurred.
>== arithmetic exception, numeric overflow, or string truncation.
>
>Tabelas usadas
>
>Inventario (Codigo, Quantidade)
>Estoque (Codigo, Quantidade)
>
>Abaixo está o codigo da sp. Se alguem tiver uma forma mais simples.
>Agradeço.
>
>    for select CODIGO, QUANTIDADE from inventario
>        into :"_CODIGO", :"_QUANTIDADE"
>    do
>    begin
>      update Estoque
>      set
>        QUANTIDADE = :"_QUANTIDADE"
>      where codigo = :"_CODIGO";
>    end
>
>Aguardo Contato.
>
>Att.
>
>Salatiel Venâncio
>"JESUS, Minha Certeza!"
>Campina Grande - PB
>
>
>	
>
>
>
>	
>		
>_______________________________________________________ 
>Yahoo! doce lar. Faça do Yahoo! sua homepage. 
>http://br.yahoo.com/homepageset.html 
>
>
>______________________________________________
>FireBase-BR (www.firebase.com.br) - Hospedado em www.bavs.com.br
>Para editar sua configuração na lista, use o endereço http://mail.firebase.com.br/mailman/listinfo/lista_firebase.com.br
>Para consultar mensagens antigas: http://firebase.com.br/pesquisa
>
>  
>





Mais detalhes sobre a lista de discussão lista