BLOQUEAR TABELA NO MYSQL EM UMA ESTACAO
Galera boa tarde.
Gostaria de saber como que eu posso bloquear a tabela em uma estação enquanto o usuário tiver utilizando.
Na prática é assim:
Tenho um nº de coleta e que ele será atualizado na medida que forem impressas as coletas e esse nº não pode se repetir, e vários usuários podem fazer a impressão.
Quando o usuário vai imprimir o sistema chega o nº que esta nos parametros e coloca na coleta que está sendo impressa e vai somando um a cada impressão.
O usuário pode selecionar uma ou várias coletas a serem impressas simultaneamente e nesse segundo caso, eu queria deixar a tabela travada até a última coleta ser impressa, para não ter o problema de ter nº em duplicidade.
Acho que consegui explicar o que desejo, será que alguém pdoe me ajudar com essa dúvida?
Abraço a todos
Gostaria de saber como que eu posso bloquear a tabela em uma estação enquanto o usuário tiver utilizando.
Na prática é assim:
Tenho um nº de coleta e que ele será atualizado na medida que forem impressas as coletas e esse nº não pode se repetir, e vários usuários podem fazer a impressão.
Quando o usuário vai imprimir o sistema chega o nº que esta nos parametros e coloca na coleta que está sendo impressa e vai somando um a cada impressão.
O usuário pode selecionar uma ou várias coletas a serem impressas simultaneamente e nesse segundo caso, eu queria deixar a tabela travada até a última coleta ser impressa, para não ter o problema de ter nº em duplicidade.
Acho que consegui explicar o que desejo, será que alguém pdoe me ajudar com essa dúvida?
Abraço a todos
Boa tarde alvaro,
aqui, pelo que eu entendi, se eu imprimir, vai gerar um numero de coleta, vc imprimi a mesma coleta e gera um novo numero (não pode repetir, entao esta correto), mas.... se vc manda imprimir mais de uma coleta, por exemplo 3 coletas, todas saem com o mesmo numero, isso?
bom, eu faria o seguinte, faria uma contagem dos registros selecionados ( recordcount ), verificaria qual foi a ultima coleta lançada, faria um loop for acrescentando + 1 a este numero dando um update.
qualquer coisa posta ae sua codificação. abraços.
aqui, pelo que eu entendi, se eu imprimir, vai gerar um numero de coleta, vc imprimi a mesma coleta e gera um novo numero (não pode repetir, entao esta correto), mas.... se vc manda imprimir mais de uma coleta, por exemplo 3 coletas, todas saem com o mesmo numero, isso?
bom, eu faria o seguinte, faria uma contagem dos registros selecionados ( recordcount ), verificaria qual foi a ultima coleta lançada, faria um loop for acrescentando + 1 a este numero dando um update.
qualquer coisa posta ae sua codificação. abraços.
MAYCONIGHT Obrigado pelo retorno
O problema não o fato de ir somando e sim o problema é de não deixar um segundou ou terceiro usuário na rede emitir a coleta, enquanto o primeiro usuário não terminar de emitir a(s) coleta(s) selecionada(s).
A partir do momento que o primeiro usuário terminar a impressão, o sistema libera a tabela já com o nº atualizado da coleta, para os outros usuários, para imprimirem.
Da forma que você colocou, com certeza em um ou mais momentos terão duas ou mais coletas com o mesmo nº e travando a tabela não tem jeito
O problema não o fato de ir somando e sim o problema é de não deixar um segundou ou terceiro usuário na rede emitir a coleta, enquanto o primeiro usuário não terminar de emitir a(s) coleta(s) selecionada(s).
A partir do momento que o primeiro usuário terminar a impressão, o sistema libera a tabela já com o nº atualizado da coleta, para os outros usuários, para imprimirem.
Da forma que você colocou, com certeza em um ou mais momentos terão duas ou mais coletas com o mesmo nº e travando a tabela não tem jeito
o comando do mysql para bloquear a tabela é:
lock table nomedatabela
após finalizar você tem que liberar:
unlock table nomedatabela
mais detalhes no link: http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html
lock table nomedatabela
após finalizar você tem que liberar:
unlock table nomedatabela
mais detalhes no link: http://dev.mysql.com/doc/refman/5.0/en/lock-tables.html
FGSANTOS Obrigado pelo retorno, era o que eu estava precisando mesmo
vlw abraço
vlw abraço
Tópico encerrado , respostas não são mais permitidas