[firebase-br] Travar registro no BD
João Dias
jdias.bjsoftware em gmail.com
Sex Jun 5 14:25:47 -03 2009
Basta você mudar o Select para
select
first( 1 )
CL.NUMERO,
C.MENSAGEM
from
CAMPANHA_LANCAMENTO CL
inner join CAMPANHA C on (CL.ID_CAMPANHA = C.ID_CAMPANHA)
where
CL.ENVIADO = 'N'
with lock
Cada vez que um Select com trava "With Lock" for executado se outro já o
tiver sido uma exceção será disparada
espero ter ajudado
--
João Dias de Carvalho Neto
jdias.bjsoftware em gmail.com
Quer Artigos de Patterns GOF e Patterns Corporativos com vídeo aula e Fontes Demonstrativos?
vá a http://www.jdiasneto.blogspot.com
Marcelo Moreira escreveu:
> Pessoal,
> Boa tarde!
>
> Preciso que um determinado registro na tabela seja travado de modo que outro
> usuario nao tenha acesso ha ele. Vou tentar explicar a situação:
> O sistema vai fazer o envio de email e os cliente para quem ele deve mandar
> o emai vai ficar nesta tal tabela. o que acontece é que vao ser mais de um
> sistema aberto fazendo o envio destes email e o sql que estou usando para
> pegar sempre o ultimo registro que ainda nao foi enviado o email seria este:
>
>
> select
> first( 1 )
> CL.NUMERO,
> C.MENSAGEM
>
> from
> CAMPANHA_LANCAMENTO CL
>
> inner join CAMPANHA C on (CL.ID_CAMPANHA = C.ID_CAMPANHA)
>
> where
> CL.ENVIADO = 'N'
>
> ou seja nenhum outro sistema quando fizer o mesmo select nao pode ter acesso
> a este registro. e depois que o sistema fizer o envio do email eu altero o
> campo: CL.ENVIADO = 'S'
>
> Como eu poderia resolver isto.
>
> Obrigado pela atencao.
>
> Abraços
> ______________________________________________
> 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