[firebase-br] Update na mesma tabela do For/Select/Into
Sandro Souza
escovadordebits em gmail.com
Qua Maio 27 14:52:53 -03 2009
Bom dia/tarde BVRenato.
Grande BVRenato, provavelmente é o update sendo efetuado na mesma tabela e
no mesmo registro que está sendo acessado pelo SELECT.
Faça um teste, mova o UPDATE para fora do laço, ou seja:
Onde há:
for select campo1,campo2,...
from Itens_Pedido
where Pedido = pPedido
into :c1,c2,...
do
begin
... <= algumas operações
>> Nesse momento dá o erro
update Itens_pedido t set t.campo10 = c1*c2 *qualquer coisa
where t.nrpedido = pPedido
end
Tente:
for select campo1,campo2,...
from Itens_Pedido
where Pedido = pPedido
into :c1,c2,...
do
begin
... <= algumas operações
end
update Itens_pedido set
campo10 = campo1*campo2 *qualquer coisa
where
Pedido = pPedido;
Espero que funcione.
Também verifique se existe alguma trigger antes ou depois do update nessa
tabela.
Espero ter ajudado mais que atrapalhado. :D
2009/5/27 bvrenato <bvrenato em click21.com.br>
>
> Boa tarde a todos!
>
> Estou precisando atualizar alguns campos de todos os registros de uma
> tabela de
> pedidos via procedure, e está ocorrendo o seguinte erro: Too many
> concurrent
> executions of the same request.
>
> Uso o FB 2.1 e estou fazendo o seguinte:
>
>
> begin
> for select campo1,
> campo2,
> ...
> from Itens_Pedido
> where Pedido = pPedido
> into :c1,
> c2,
> ...
> do
> begin
> ... <= algumas operações
>
> >> Nesse momento dá o erro
> update Itens_pedido t set t.campo10 = c1*c2 *qualquer coisa
> where t.nrpedido = pPedido
>
>
>
> end
>
> end
>
> Isso significa que não posso fazer o update na mesma tabela do
> for/select/into?
>
> Alguém poderia dar uma dica de como fazer ?
>
> Obrigado!
>
> Renato
>
>
>
> ___________________________________________________________________________________
> Para fazer uma ligação DDD pra perto ou pra longe, faz um 21. A Embratel
> tem
> tarifas muito baratas esperando por você. Aproveite!
>
>
> ______________________________________________
> 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