Como travar um registro no Interbase?

Delphi

13/04/2004

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!!


Jacson

Jacson

Curtidas 0
POSTAR