Nome do usuario que fez bloqueio de registro

21/06/2016

0

Bom dia a todos.
Faço o bloqueio dos meus registros utilizando a instrução with lock para que o usuario não faça nenhuma alteração no registro que estou editando.
Conforme abaixo:

select * from CLIENTE where CODIGO = 1 With Lock, com essa instruição é feito o bloqueio com mensagem para o usuario que o registro esta sendo alterado por outro usuario na rede.

Agora preciso saber qual é esse usuario, teria como saber via banco, ja que meu usuario do firebird é o mesmo usuario do meu sistema
Ex: JOÃO, ANTONIO, MARIA, todos eles estão como usuario do proprio firebird.
Fernando Rodrigo

Fernando Rodrigo

Responder

Posts

04/07/2016

Roberto Wutke

O que pode ser feito é ter uma tabelinha simples de log, aonde vc vai armazenar essa informação, quando der a mensagem para o usuário, ele grava o log com o código do usuário de acesso ao sistema ( já que o usuário de acesso ao banco é o mesmo para todos ). Assim você consegue identificar.

Espero ter ajudado.

Bons códigos
Responder

07/09/2017

Fernando Rodrigo

também quero saber pq tambem utilizo dessa forma para fazer o bloqueio dos registro, mas cada usuario é logado no sistema com seu nome e não utilizo o SYSDBA, teria como mostrar o usuario ?
Responder

07/09/2017

Eduardo Richeli

Amigo para que o processo seja mais efetiva, você deveria criar os usuários via banco, depois poderia usar as variáveis do sistema

https://firebirdsql.org/rlsnotesh/rnfb210-admin.html

- MON$TRANSACTION_ID (transaction ID)
      - MON$ATTACHMENT_ID (attachment ID)
      - MON$STATE (transaction state)
          0: idle (state after prepare, until execution begins)
          1: active (state during execution and fetch.  Idle state
             returns after cursor is closed)
      - MON$TIMESTAMP (transaction start date/time)
      - MON$TOP_TRANSACTION (top transaction)
      - MON$OLDEST_TRANSACTION (local OIT number)
      - MON$OLDEST_ACTIVE (local OAT number)
      - MON$ISOLATION_MODE (isolation mode)
          0: consistency
          1: concurrency
          2: read committed record version
          3: read committed no record version
      - MON$LOCK_TIMEOUT (lock timeout)
          -1: infinite wait
          0: no wait
          N: timeout N
      - MON$READ_ONLY (read-only flag)
      - MON$AUTO_COMMIT (auto-commit flag)
      - MON$AUTO_UNDO (auto-undo flag)


ou realmente uma tabela onde você apontaria o registro e o usuário, mas se o sistema for grande da trabalho.
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

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

Aceitar