[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