Nome do usuario que fez bloqueio de registro
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.
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
Curtidas 0
Respostas
Roberto Wutke
21/06/2016
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
Espero ter ajudado.
Bons códigos
GOSTEI 0
Fernando Rodrigo
21/06/2016
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 ?
GOSTEI 0
Eduardo Richeli
21/06/2016
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
ou realmente uma tabela onde você apontaria o registro e o usuário, mas se o sistema for grande da trabalho.
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.
GOSTEI 0