GARANTIR DESCONTO

Fórum Isolamento de Transação - Dúvidas #48618

28/12/2004

0

Preciso criar uma tabela temporária durante uma transação no banco de dados para emissão de um relatório, e somente na transação onde a tabela foi criada é que ela deve estar visível. Como posso fazer isso no FireBird? No Oracle, vc pode criar tabelas dentro do contexto de uma transação, e outras transações não enxergam essa tabela dessa transação aberta. Alguém pode me esclarecer se isso é possível no FireBird?

Grato,

Rubem Rocha
Manaus, AM


Khundalini

Khundalini

Responder

Posts

28/12/2004

Gandalf.nho

O Firebird não possui esse recurso de tabelas temporárias.


Responder

Gostei + 0

28/12/2004

Khundalini

Eu sei que não tem esse recurso, companheiro! Acho que você não entendeu o que eu escrevi!

Como eu sei que o FireBird não tem recurso para criação de tabelas temporárias, pensei em colocar a criação dessa tabela que eu preciso dentro de uma transação, de modo que eu a criaria, alimentaria com dados temporários e, ao terminar a geração do relatório, eu a droparia do banco e desfaria a transação (rollback). Só que eu gostaria de saber se eu posso fazer isso, ou seja, mesmo tendo aberto uma transação essa tabela que eu iria criar (que, a princípio, teria um nome fixo) seria vista por outras transações. Se sim, gostaria de saber qual o nível de isolamento de transação para que o que eu quero fazer aconteça.

[]s
Rubem Rocha
Manaus, AM


Responder

Gostei + 0

28/12/2004

Gandalf.nho

Acho que não é possível criar uma tabela e preenchê-la com dados sem comitar a transação que a criou.


Responder

Gostei + 0

28/12/2004

Khundalini

Eu acho que é possível no FireBird. Já li alguma coisa sobre isolamento de transações e pelo que li, pode ser que seja possível isso que eu quero fazer. No Oracle eu já vi isso acontecer. Na época, a aplicação (feita em PowerBuilder) gerava os dados em tabelas temporárias, e estas eram enxergadas apenas pela aplicação que iniciou a transação. Após a geração do relatório, essas tabelas preenchidas eram dropadas e a transação desfeita.

Por isso que eu acredito que no FireBird seja possível. Uso D7 + FireBird 1.5 + conexão via dbExpress.

[]s
Rubem Rocha
Manaus, AM


Responder

Gostei + 0

29/12/2004

Edilcimar

Crie uma tabela e depois de um drop nela, eu utilizo para a criacao um nome tipo T123456 onde o número é tirado do relógio, a possibilidade de duas pessoas criarem uma tabela no mesmo tempo(contando milisegundos) é tão remota que eu a desprezo


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar