Fórum Saber que usuário está usando Registro #259058

19/11/2004

0

Bom pessoal, a algum tempo atrás, eu havia perguntado, como fazer um travamento pessimista no Firebird utilizando IBX. Minha dúvida foi sanada, porém, eu gostaria de saber se tem como saber qual usuário está utilizando o registro, para mostrar na mensagem.

A mensagem ficaria algo do tipo:

´Registro está sendo utilizado pelo usuário ´

ou então

´Registro está sendo utilizado pelo computador ´

Utilizo Delphi 7, com Firebird 1.5.


Thomaz_prg

Thomaz_prg

Responder

Posts

19/11/2004

Jc_analista

vc poderia criar um campo na tabela dizendo qual o usuário estava usando, assim toda vez que alguem editar um registro vc vai la e marca qual usuario esta usando. Não conheço outra forma.


Responder

Gostei + 0

19/11/2004

Thomaz_prg

Olá colega!

Obrigado pela ajuda mas, eu também havia pensado nesta forma. Porém, vi um sistema, feito em uma linguagem chamada Progress, que faz isso diretamente. O erro retornado pelo banco de dados já contém o nome do usuário que está utilizando o registro, e achei que, o Firebird sendo um SGBD, também teria como pegar o nome do usuário que está usando o banco, quem sabe através de um comando SQL, sei lá.

Mas de qualquer forma obrigado.

Mais alguém tem alguma idéia???


Responder

Gostei + 0

19/11/2004

Thomaz_prg

Olá colega!

Obrigado pela ajuda mas, eu também havia pensado nesta forma. Porém, vi um sistema, feito em uma linguagem chamada Progress, que faz isso diretamente. O erro retornado pelo banco de dados já contém o nome do usuário que está utilizando o registro, e achei que, o Firebird sendo um SGBD, também teria como pegar o nome do usuário que está usando o banco, quem sabe através de um comando SQL, sei lá.

Mas de qualquer forma obrigado.

Mais alguém tem alguma idéia???


Responder

Gostei + 0

19/11/2004

Inutaishou

A solução do JC é válida, mas não recomendo... Se cair o servidor, ou até mesmo o cliente que estava usando o registro, aí, vai ter que acessar o BD externamente pra corrigir...

A unica outra solução que posso recomendar é que você trave um arquivo contendo o nome da tabela e o número do registro que está travado...

Quando for alterar, tente excluir todos os arquivos que estiverem no diretório... Os que ficarem estão travados... Aí, é só verificar os arquivos que estão ali e verificar se o registro que está tentando alterar está ali...

[]´s,


Responder

Gostei + 0

19/11/2004

Thomaz_prg

Olá colega GRFrones, fico grato pela atenção, mas acho que não fui bem claro.
Consegui travar o registro, utilizando o comando SQL ´select * from tabela where codigo = 1 with lock´. Ele evita que 2 usuários tentem alterar o mesmo registro ao mesmo tempo.

O que quero é, na hora de rerornar que o registro está sendo usado, o Firebird, me indicasse quem é o usuário, ou qual é a máquina que está usando este registro. Mas gostaria de fazer isso diretamente pelo banco de dados, pois, se houverem muitas máquinas acessando, usando seu exemplo, eu teria que estar gravando estes arquivos no servidor (para serem compartilhados), e isso aumentaria o trafego na rede, sendo inviável.

Mas de qualquer forma muito obrigado pela ajuda.

Mas o que quero é saber, qual usuário (ou terminal) está utilizando o registro.


Responder

Gostei + 0

19/11/2004

Thomaz_prg

Alguém poderia me ajudar.


Responder

Gostei + 0

23/11/2004

Thomaz_prg

E aí pessoal, alguém poderia me ajudar?????


Responder

Gostei + 0

28/11/2004

Thomaz_prg

E aí pessoal, ninguém??


Responder

Gostei + 0

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar