falo Evandro, vou testar e fazer os testes aqui, mais já ajudou sim. Valeu,
Cristiano On 1/12/07, Evandro Ricardo Silvestre <[EMAIL PROTECTED]> wrote: > Cristiano, > > Ah sim, eh que pela pergunta do Osvaldo e pela sua resposta pensei que > seria eternamente! > > A uns 6 meses atrás tivemos um problema semelhante e optamos por > resolver sem o Lock. Utilizamos um controle melhorado da transação e um > gerenciamento de seções em um trigger. Está funcionando legal. Mas nossa > arquitetura é bem diferente do que se vê por ai, não sei se resolveria > seu problema. > > Dê uma olhada aqui http://pgdocptbr.sourceforge.net/pg80/mvcc.html, acho > que o ITEM 12.3.2 é o que deseja! Tenha muito cuidado com DeadLock! > > Abaixo o exemplo da Trigger que bloqueia UPDATE na tabela > > CREATE OR REPLACE FUNCTION ft_teste () RETURNS trigger AS > 'BEGIN > RETURN NULL; -- O retorno NULL faz com que o commit nao se efetive! > END; ' > LANGUAGE 'plpgsql'; > > CREATE TRIGGER tr_bu_teste > BEFORE UPDATE ON tabela_teste FOR EACH ROW > EXECUTE PROCEDURE ft_teste(); > > Você pode alterar o return null por um Raise Exception e estourar uma > mensagem de erro! > > []'s > > Evandro > > Cristiano Panvel wrote: > > Evandro, na verdade nao precissaria ficar eternamente com o lock, > > seria ate o usuario excutar o encerramento do pedido, depois esse dado > > nao aparece mais na sua tela, mais o dado pode ficar entre 1 a dois > > dias na tela. > > > > Mais se puder manda um exemplo aí, eu agradeço. > > > > Cristiano. > > > > On 1/12/07, Evandro Ricardo Silvestre <[EMAIL PROTECTED]> wrote: > > > >> Isso que você está querendo fazer é um pouco inseguro. > >> Os locks feitos no banco ficam até o servidor ser reiniciado ou até > >> estourar algum erro de DeadLock, a partir disso os registros são liberados. > >> > >> Não sei se existe alguma forma de fazer no Postgresql que um Lock fique > >> eternamente! > >> > >> Eu faria uma Trigger Before Update que impossibilitaria a edição do > >> registro. O que acha? Acho mais confiável que usar Lock, pelo menos > >> dessa forma você tem o controle sobre o registro! > >> > >> Se você optar pela trigger posso escrever um exemplo. > >> > >> Att. > >> > >> Evandro > >> > >> Cristiano Panvel wrote: > >> > >>> Sim é isso mesmo Osvaldo. Eu lembro que em DB2 da IBM era possivel > >>> fazer isso mais ja nao lembro mais nem como fazia, ja faz muito tempo. > >>> > >>> Cristiano > >>> > >>> On 1/11/07, Osvaldo Kussama <[EMAIL PROTECTED]> wrote: > >>> > >>> > >>>> Cristiano Panvel <[EMAIL PROTECTED]> escreveu: > >>>> pessoal, existe alguma forma no postgresql, de eu efetuar um lock no > >>>> registro, por exemplo: > >>>> o usuario alterou um determinado dado X, e ele nao pode mais alterar o > >>>> dado novamente, gostaria de saber se posso controlar isso pelo banco e > >>>> nao pela aplicacao em si. > >>>> > >>>> > >>>> > >>>> Vamos ver se entendi: eu sou um usuário do bd e alterei um determinado > >>>> campo > >>>> de um registro de uma tabela, portanto nunca mais vou poder alterar este > >>>> mesmo campo deste registro. É isso? Mesmo que daqui a um mês, um ano? > >>>> Qualquer outro usuário pode alterar este mesmo campo mas a partir daí > >>>> entra > >>>> na regra da proibição? > >>>> > >>>> Se for isso creio que terá que implementar em sua aplicação. *EU* não > >>>> conheço nada parecido no PostgreSQL. > >>>> > >>>> Se entendi errado por favor explique-se melhor. > >>>> > >>>> []s > >>>> Osvaldo > >>>> > >>>> > >>>> > >>>> __________________________________________________ > >>>> Fale com seus amigos de graça com o novo Yahoo! Messenger > >>>> http://br.messenger.yahoo.com/ > >>>> _______________________________________________ > >>>> Grupo de Usuários do PostgreSQL no Brasil > >>>> Antes de perguntar consulte o manual > >>>> http://pgdocptbr.sourceforge.net/ > >>>> > >>>> Para editar suas opções ou sair da lista acesse a página da lista em: > >>>> http://pgfoundry.org/mailman/listinfo/brasil-usuarios > >>>> > >>>> > >>>> > >>>> > >>> _______________________________________________ > >>> Grupo de Usuários do PostgreSQL no Brasil > >>> Antes de perguntar consulte o manual > >>> http://pgdocptbr.sourceforge.net/ > >>> > >>> Para editar suas opções ou sair da lista acesse a página da lista em: > >>> http://pgfoundry.org/mailman/listinfo/brasil-usuarios > >>> > >>> > >>> > >>> > >> _______________________________________________ > >> Grupo de Usuários do PostgreSQL no Brasil > >> Antes de perguntar consulte o manual > >> http://pgdocptbr.sourceforge.net/ > >> > >> Para editar suas opções ou sair da lista acesse a página da lista em: > >> http://pgfoundry.org/mailman/listinfo/brasil-usuarios > >> > >> > > _______________________________________________ > > Grupo de Usuários do PostgreSQL no Brasil > > Antes de perguntar consulte o manual > > http://pgdocptbr.sourceforge.net/ > > > > Para editar suas opções ou sair da lista acesse a página da lista em: > > http://pgfoundry.org/mailman/listinfo/brasil-usuarios > > > > > > > > _______________________________________________ > Grupo de Usuários do PostgreSQL no Brasil > Antes de perguntar consulte o manual > http://pgdocptbr.sourceforge.net/ > > Para editar suas opções ou sair da lista acesse a página da lista em: > http://pgfoundry.org/mailman/listinfo/brasil-usuarios > _______________________________________________ Grupo de Usuários do PostgreSQL no Brasil Antes de perguntar consulte o manual http://pgdocptbr.sourceforge.net/ Para editar suas opções ou sair da lista acesse a página da lista em: http://pgfoundry.org/mailman/listinfo/brasil-usuarios
