Ir para conteúdo
Fórum Script Brasil
  • 0

Travar Registro No Interbase


Guest - jacsonsoares -

Pergunta

Guest - jacsonsoares -

Pessoal,

Preciso travar um registro no Interbase, no Oracle, usa-se

SELECT * FROM TABELA FOR UPDATE NO WAIT ou SKIP LOCKED  

Alguém sabe como fazer no Interbase?

Muito obrigado!

Att, Jacson Soares;

Link para o comentário
Compartilhar em outros sites

7 respostass a esta questão

Posts Recomendados

  • 0

Não entendi! Se precisa de uma quebra de página entre os dois relatórios, então, basta chamar um e depois o outro ao invés de compor. Certo?

Esquece.. respondi .. errado meu .. desculpa ai

vou ver o que posso fazer no seu abraços

Editado por bolomaster
Link para o comentário
Compartilhar em outros sites

  • 0
Não entendi! Se precisa de uma quebra de página entre os dois relatórios, então, basta chamar um e depois o outro ao invés de compor. Certo?

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

Link para o comentário
Compartilhar em outros sites

  • 0
Guest Rodrigo Alvim

Jacson,

Se você conseguir alguma ajuda sobre como travar registro no Interbase ou FireBird, por favor me retorne. Também estou muito interessado.

Obrigado.

Link para o comentário
Compartilhar em outros sites

  • 0

Uso DBE.

Eu gostari de fazer o seguinte:

  Select id from tabela where id = 10 for update whit nowait

isso iria travar o registro e eu tentaria fazer o mesmo select de outra máquina e se realmente o registro estiver travado ele retorna uma exception que eu trataria no delphi e enviaria uma menssagem para o usuario disendo que o registro esta em uso.

este é o teste que eu gostaria de fazer, você sabe como fazer?

Link para o comentário
Compartilhar em outros sites

  • 0
Guest s3c@terra.com.br

Caro amigo, pelo BDE, receio que você não consiga.

Talvez você consiga pelo IBX, bloqueando no IBTransaction da query.

No BDE, o StartTransaction é em todo o banco e o Interbase só aceita um StartTransaction por vez. Ficaria inviável.

No IBX, as transações são por querys, de modo que ficaria mais flexível.

Link para o comentário
Compartilhar em outros sites

Participe da discussão

Você pode postar agora e se registrar depois. Se você já tem uma conta, acesse agora para postar com sua conta.

Visitante
Responder esta pergunta...

×   Você colou conteúdo com formatação.   Remover formatação

  Apenas 75 emoticons são permitidos.

×   Seu link foi incorporado automaticamente.   Exibir como um link em vez disso

×   Seu conteúdo anterior foi restaurado.   Limpar Editor

×   Você não pode colar imagens diretamente. Carregar ou inserir imagens do URL.



  • Estatísticas dos Fóruns

    • Tópicos
      152,2k
    • Posts
      651,9k
×
×
  • Criar Novo...