Como travar um registro no Interbase?
Olá Pessoal!
Estou com a seguite dúvida:
Tenho uma tabela de notas fiscais, e a mesma pode ser acessada por n usuarios.
mostro todos os registros em uma pesquisa para os usuarios ´A´ e ´B´.
O usuario ´A´ quer trabalhar a NF nro 10, e pega o registro para trabalhar.
No Oracle eu uso
Código:
SELECT * FROM TB_NF WHERE NOTA = 10 FOR UPDATE NO WAIT
para travar o registro para o usuario ´A´.
O usuario ´´B´ quer trabalhar também a NF nro 10, e tenta pegar o registro para trabalhar, no Oracle eu sei que se o usuario ´A´ está trabalhando com o comando
Código:
SELECT * FROM TB_NF WHERE NOTA = 10 FOR UPDATE NO WAIT
Se eu não conseguir dar um ´Lock´ travar o registro é porque ele esta em uso.
Gostaria se é possível travar apenas um registro para uso no Interbase.
Obs.:
No help do SQL do interbase existe o comando NO WAIT porém pesquisando na net encontrei em algumas apostilas que o IB nao trava os registros.
A maneira mais fácil que conheço é tratando os registros por TAG(marca).
Ex.:
O usuario ´A´ quer trabalhar a NF nro 10, e pega o registro para trabalhar.
Então dou um UPDATE no campo TAG para 1.
O usuario ´´B´ quer trabalhar também a NF nro 10, e tenta pegar o registro para trabalhar.
Então verifico na tabela se a TAG do registro está em 0, se não o mesmo está em uso.
Mas isso é muito usado em Paradox, e acho que um banco legal como o Ib deveria ter esse recurso.
E ai galera algém tem a solução?
Obrigado a todos pela colaboração!!
Estou com a seguite dúvida:
Tenho uma tabela de notas fiscais, e a mesma pode ser acessada por n usuarios.
mostro todos os registros em uma pesquisa para os usuarios ´A´ e ´B´.
O usuario ´A´ quer trabalhar a NF nro 10, e pega o registro para trabalhar.
No Oracle eu uso
Código:
SELECT * FROM TB_NF WHERE NOTA = 10 FOR UPDATE NO WAIT
para travar o registro para o usuario ´A´.
O usuario ´´B´ quer trabalhar também a NF nro 10, e tenta pegar o registro para trabalhar, no Oracle eu sei que se o usuario ´A´ está trabalhando com o comando
Código:
SELECT * FROM TB_NF WHERE NOTA = 10 FOR UPDATE NO WAIT
Se eu não conseguir dar um ´Lock´ travar o registro é porque ele esta em uso.
Gostaria se é possível travar apenas um registro para uso no Interbase.
Obs.:
No help do SQL do interbase existe o comando NO WAIT porém pesquisando na net encontrei em algumas apostilas que o IB nao trava os registros.
A maneira mais fácil que conheço é tratando os registros por TAG(marca).
Ex.:
O usuario ´A´ quer trabalhar a NF nro 10, e pega o registro para trabalhar.
Então dou um UPDATE no campo TAG para 1.
O usuario ´´B´ quer trabalhar também a NF nro 10, e tenta pegar o registro para trabalhar.
Então verifico na tabela se a TAG do registro está em 0, se não o mesmo está em uso.
Mas isso é muito usado em Paradox, e acho que um banco legal como o Ib deveria ter esse recurso.
E ai galera algém tem a solução?
Obrigado a todos pela colaboração!!
Jacson
Curtidas 0