MySql Delphi: Como dar LOCK e UNLOCK em determinado registro
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 !
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
Curtidas 0
Respostas
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
assim o registro é travado até que vc dê um rollback ou um commint.
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
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
Grato pela colaboração.
Grande abraço
GOSTEI 0
Campsoft
02/10/2006
Nada ainda.... (UP !)
GOSTEI 0