[firebase-br] tabela temporaria
Daniel / Tecnobyte
temp em tecnobyte.com.br
Seg Jan 15 17:46:29 -03 2007
> tenho uma sp que junta dados de duas tabelas e grava em uma terceira
> tabela
>
> toda vez q a sp é executada limpo a tabela e gravo os dados das duas
> tabelas
>
> qdo só um terminal executa funciona blza mas qdo + de um terminal tenta
> executar da erro
>
>
> como faço para criar uma tabela temporaria? ou tem alguma outra forma de
> se fazer isto sem tabela
Como no Firebird ainda não existem tabelas temporárias, sugiro adicionar
nesta tabela uma coluna para identificar o processo que está sendo executado
(um ID apenas). Crie também um generator que será usado para criar os IDs
para este campo.
Então faça o seguinte:
1. Obtenha um novo ID, incrementando o generator.
2. Gere todos os registros dentro do processamento identificando-os por este
mesmo ID (portanto não coloque como chave-única, pois a idéia é mesmo
permitir duplicação.
3. No fim do processamento, você poderá retornar o ID do processo para a
aplicação.
4. A aplicação, conhecendo o ID do processo, poderá excluir apenas os
registros envolvidos neste processamento, não interferindo nas operações
sendo executadas concorrentemente.
Nunca usei isto, mas certamente funcionará bem. O único problema neste caso
é o grande volume de exclusões, o que talvez faça o arquivo de dados crescer
um pouco a mais que de costume. Mas como você já faz algo parecido, isto não
deverá ser problema para seu caso especificamente.
Atenciosamente.
Daniel P. Guimarães
Tecnobyte Informática
www.tecnobyte.com.br
Mais detalhes sobre a lista de discussão lista