[firebase-br] Como Liberar o With Lock

Sandro Souza escovadordebits em gmail.com
Qui Dez 18 10:17:16 -03 2008


Bom dia/tarde Zottis.

Amigo, se não estou enganado, o método "Prepare" já é executado
automaticamente pelo método "Open" caso o comando SQL ainda não tenha sido
"preparado" (enviado ao banco de dados para ser analisado e pré-processado).
Então você pode omití-lo, mas isso ainda não tem a ver com a questão que
você formulou. :D

Ao fechar a janela, apenas feche essa query (dados.MarcasCad.Close). Mas o
principal, é verificar se ainda ficou alguma transação pendente, ou seja,
quando você abriu a query, muito provavelmente foi iniciada uma transação, e
com o "with lock" os respectivos registros lidos foram bloqueados a outros
usuários a medida em que eram lidos.

Então, além de fechar esse DataSet, procure executar o método Commit do
respectivo componente de transação para se certificar que qualquer transação
pendente tenha sido efetivada, e sendo assim, os registros bloqueados
finalmente seriam liberados para as outras aplicações.

Espero ter ajudado mais que atrapalhado.

2008/12/18 Zottis <zottissistemas em brturbo.com.br>

> Pessoal, to com uma dúvida....
>
> eu estou utilizando o With lock em alguns selects
> para cadastro
>
> mas como faço para liberar ele?
>
> o Código de chamar o With lock é esse:
> select CODIGO, DATA_CAD, COD_USUARIO, MARCA, EXCLUIDO_POR, DATA_EXCLUSAO,
> HORA_EXCLUSAO, DELETADO,
>
> (select LOGIN from Usuarios S Where MARCAS_VEIC.COD_USUARIO =
> S.Cod_usuario)AS USUARIO
>
>  from MARCAS_VEIC
>
> where deletado = 'N' and codigo = :VarCodigo with lock
>
> daí eu chamo ele assim
>
>     with dados.MarcasCad do
>        begin
>          close;
>          parambyname('VarCodigo').AsInteger  := codigo;
>          prepare;
>          open;
>        end;
>
>
> e ao fechar a janela eu faço assim
>
>     with dados.MarcasCad do
>        begin
>          close;
>          parambyname('VarCodigo').AsInteger  := 0;
>          prepare;
>          open;
>          CLOSE;
>        end;
>
>  mas mesmo assim ele não libera para a outra estaçã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