Para Bloquear (lock) os registros e saber que esta bloqueado pela outra
aplicação use o FOR UPDATE NOWAIT isso irá avisar que o registro está
travado.
exemplo
SELECT * FROM clientes WHERE cod = '0001' FOR UPDATE NOWAIT
Claro que tudo isso feito dentro de uma transação.
Moises.
Bom dia pessoal, venho aqui só para contar como resolvi meu drama..
sei que deve existir alguma forma muito melhor de fazer isto.. mas
como nao consegui aqui les explico..
Como les disse, presiso bloquear para alteracoes um certo registro nos
cadastros.
Entao a nivel de aplicacao, eu tenho que bloquear o cadastro do
cliente 0001 por exemplo.. e em outra estacao ou mesmo conexao minha
aplicacao tem que saber se este registro está ou nao bloqueado para
alteracoes, ou seja, eu só posso consultar..
para bloquear eu teste SELECT FOR UPDATE.. funcionou exatamente como
eu presisava..
mas o detalle é que nao consegui testar na segunda conexao se tal
registro está ou nao bloqueado antes mesmo de abrir o cadastro do
cliente 0001.. é aqui que eu parei..
Entao como era meio urgente, eu fiz uma PEQUENA GAMBIARRA..
agora a nivel de aplicacao, quando eu altero um registro, eu guardo em
uma tabela auxiliar os seguintes dados
PID, TABLE, COD
onde pid é o pid da conexao que esta alterando, table é o nome da
tabela CLIENTES por exempolo.. eo COD é o codigo do cliente a ser
alterado..
Quando eu termino de alterar.. eu elimino estes dados da tabela auxiliar..
Ja a segunda conexao o aplicativo antes de alterar o cliente 0001
busca se este cliente está sendo alterado por outra conexao, e para
ter certeza eu testo se o PID ainda está ativo.. se tudo isto retornar
TRUE.. entao quer dizer q outro usuario está alterando o cadastro do
cliente 0001...
Algum comentario, será bem vindo.. sei muito bem que isso é uma
gambiarra.. mas como sou iniciando no iMundo SQL, tenho que improvisar
quando o meu conhecimento nao ajuda..
Saudacoes a Todos.
--------------------------------------------------------------------------------
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
--------------------------------------------------------------------------------
No virus found in this incoming message.
Checked by AVG Free Edition.
Version: 7.5.476 / Virus Database: 269.9.10/876 - Release Date: 28/6/2007
10:56
_______________________________________________________
Yahoo! Mail - Sempre a melhor op��o para voc�!
Experimente j� e veja as novidades.
http://br.yahoo.com/mailbeta/tudonovo/
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral