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

Que tal ter acesso a um e-book gratuito que vai te ajudar muito nesse momento decisivo?

Ver ebook

Recomendado pra quem ainda não iniciou o estudos.

Eu quero
Ver ebook

Recomendado para quem está passando por dificuldades nessa etapa inicial

Eu quero

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

Aceitar