MySql Delphi: Como dar LOCK e UNLOCK em determinado registro

Delphi

02/10/2006

Salve, Salve Galera.DPR ! :D

Eu estou aqui em meio a uma batalha e derrepente apareceu esta necessidade: De ter que travar um determinado registro enquanto ele está em processo de edição e libera-lo em seguida, assim que este processo termine. Evitando que outros usuarios tambem tenham acesso a ele durante esse procedimento.

Eu estou utilizando uma maneira artesanal de fazer isso:
altera um campo de 0 pra 1 (trava)... o usuario faz as alterações, salva, e o sistema volta o tal campo 1 pra 0 (destravando)

mais isso vai babar la na frente.... se algum dia o pc do usuario travar, ou se acabar a eletricidade ferrô.. o lançamento vai ficar preso.

Como resolvo isso de uma maneira menos arcaica ?

Um Grande Abraço !


Campsoft

Campsoft

Curtidas 0

Respostas

Raserafim

Raserafim

02/10/2006

realmente vc está utilizando um métdo bastante artesanal.

vai depender da base de dados que vc está utilizando.
se vc estiver usando o firebird, então no código SQL vc pode utilizar o for update with lock
select *
from clientes
where id_cliente = :id_cliente
for update with lock 


assim o registro é travado até que vc dê um rollback ou um commint.


GOSTEI 0
Campsoft

Campsoft

02/10/2006

Então raserafim, é exatamente isso que eu preciso.. seria fantastico saber como fazer isso utilizando o MySql.... vou tentar dar uma caçada na documentação e se eu tiver algum sucesso posto por aqui.

Grato pela colaboração.

Grande abraço


GOSTEI 0
Campsoft

Campsoft

02/10/2006

Nada ainda.... (UP !)


GOSTEI 0
POSTAR