[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