[firebase-br] duvida for update With lock

Sandro sandro_rebelo em ibest.com.br
Seg Nov 24 16:18:04 -03 2008


Se voce quer travar todos os registros retornados pela consulta pode usar 
with lock, mas tem que uzar fetchall para travar todos os registros.
Para dar o conflito de imediato, vc tem que configurar na sua transação como 
read_committed e nowait.

Eu utilizo assim, com Delphi 7 e IBX


   try
       dmficha.qficha.Close;
       dmficha.qficha.params.clear;
       dmficha.qficha.sql.clear;
       dmficha.qficha.sql.add('select * from ficha where codi = :codi with 
lock');
       dmficha.qficha.Params[0].AsInteger := ncodi;
       dmficha.qficha.Open;
   except
      Showmessage('Registro está sendo utilizado por outro usuário !');
   end;

Eu não utilizo fetchall porque estou retornando apenas um registro, pois 
essa consulta é pela minha chave primaria.

Espero ter ajudado.






----- Original Message ----- 
From: "Zottis" <zottissistemas em brturbo.com.br>
To: "FireBase" <lista em firebase.com.br>
Sent: Monday, November 24, 2008 3:48 PM
Subject: [firebase-br] duvida for update With lock


Pessoal, estou com uma dúvida de como usar o for update With lock
tenho uma janela de busca de Pedidos, com alguns filtros(periodo, Pago,
entregue)
e tenho uma outra janela de cadastro de pedidos
se um usuario esta com a janela de busca de pedidos aberta e com vários
pedidos retornados inclusive o pedido 150, e em outra estação um usuario
quer abrir o pedido 150, ele libera para visualização e não deixa alterar ou
ele ja da o conflito?

desde ja agradeço.


Zottis(TeamFB Users)

Zottis Sistemas - 2008 Ano XI
Programação Delphi/PHP/Firebird/MySQL

"Um homem só tem o direito de olhar
  a um outro de cima para baixo, quando
  vai ajuda-lo a levantar-se".
                   Gabriel Garcia Marquez


______________________________________________
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