Quis dizer o seguinte: 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 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 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. Entendeu? No help do SQL do interbase existe o comando NO WAIT porém pesquisando na net encontrei em algumas apostilas que o IB não 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. Obs.: Estarei testando o Firebird pois em alguns sites dizem que a versão 1.5 tem o comando que eu quero "WHIT NO WAIT" Obrigado a todos pela colaboração!!