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