Em Qui, 2009-01-29 às 12:44 -0700, [email protected]
escreveu:
> é bom vc ver sobre o nivel de isolamento mesmo. mas o commit é por conexao
> mesmo e nao por instrução. é possível vc ver isso em várias outras linguagens
> porque é como isso funciona realmente no potgresql, por isso não tem como vc
> comitar o que esse cursor fez, mas sim tudo que essa conexao fez, uma vez que
> vc nao consegue abrir mais de uma transacao por conexao. quando vc conecta,
> você abre uma transacao, quando vc dá commit ele efetiva tudo daquela
> tranasacao e abre outra em seguida.
Resolvido com a definição de set_isolation_level(1) como abaixo:
conexao = psycopg.connect("host=host dbname=db user=usuario")
conexao.set_isolation_level(1)
Obrigado a todos pela atenção e apoio.
Antonio.
>
>
> On Thu, 29 Jan 2009 17:39:52 -0200, Antonio Prado
> <[email protected]> wrote:
> > Em Qui, 2009-01-29 às 12:31 -0700, [email protected]
> > escreveu:
> >>
> >>
> >> On Thu, 29 Jan 2009 17:23:31 -0200, Jota <[email protected]> wrote:
> >> > Olá,
> >> >
> >> > Conforme o Coutinho disse, o psycopg trabalha com o modo auto commit
> >> > false, isso significa que você tem que forcar um commit após cada
> >> > instrução de modificação (insert/update/delete).
> >> >
> >> > Desconheco o Python, mas acredito que exista algum arquivo de
> >> > configuração para modificar este parâmetro.
> >>
> >> se nao me engano:
> >> connection.auto_commirt = true
> >
> >
> > Creio não ser necessário, pois realizo o commit a cada inserção ou
> > alteração, a não ser que exista alguma diferença no comportamento.
> >
> > O detalhe que observei é que o commit e realizado na conexão e no
> > cursor:
> >
> > conexao.cursor.execute(sql)
> > conexao.commit()
> >
> >
> > Talvez eu tenha que realizar no cursor, mas para isto creio que tem a
> > haver com o serialize, que não consigo passar como parâmetro ao realizar
> > a conexão.
> >
> > Antonio.
> >
> >
> >
> >>
> >> :)
> >>
> >> >
> >> > Outra coisa que você poderia verificar é o nível de isolamento de
> >> > transação que você está utilizando. Os níveis são read committed
> > e
> >> > serializable. Você tem como verificar isso?
> >> >
> >> > []s
> >> >
> >> >
> >> >
> >> > 2009/1/29 Antonio Prado <[email protected]>:
> >> >> Em Qui, 2009-01-29 às 17:07 -0200, Jota escreveu:
> >> >>> Olá,
> >> >>>
> >> >>> Qual nível de transação você está utilizando? Serializable?
> >> >>
> >> >> Estou estabelecendo a conexão da seguinte forma:
> >> >> conexao = psycopg.connect("host=host dbname=db user=usuario")
> >> >>
> >> >> Devo acrescentar algum parâmetro?
> >> >>
> >> >>
> >> >> Antonio
> >> >>
> >> >>
> >> >>
> >> >>>
> >> >>> []s
> >> >>>
> >> >>> 2009/1/29 Antonio Prado <[email protected]>:
> >> >>> > O problema:
> >> >>> >
> >> >>> > O sistema está aberto em duas seções distintas.
> >> >>> > Um usuário realiza uma alteração em um determinado cadastro.
> >> >>> > Esta alteração não se torna visível na outra seção,
> >> >>> > fazendo-se necessário fechar a aplicação e abrir novamente.
> >> >>> >
> >> >>> >
> >> >>> > A aplicação (Python):
> >> >>> >
> >> >>> > A conexão com o banco de dados PostgreSQL é realizada utilizando
> > o
> >> >>> > psycopg, na abertura do aplicativo:
> >> >>> >
> >> >>> > import psycopg
> >> >>> > conexao = psycopg.connect("host=%s dbname=%s user=%s" %(host,
> > dbname,
> >> >>> > user))
> >> >>> >
> >> >>> >
> >> >>> > Quando uma rotina realiza um alteração na base de dados:
> >> >>> >
> >> >>> > conexao.cursor.execute(sql)
> >> >>> > conexao.commit()
> >> >>> >
> >> >>> >
> >> >>> >
> >> >>> > O que é necessário ser alterado no processo de conexão e
> >> > gravação para
> >> >>> > que as alterações sejam visualizadas pelas outras conexões?
> >> >>> >
> >> >>> >
> >> >>> > Se alguém pude ajudar, desde já, muito obrigado.
> >> >>> >
> >> >>> >
> >> >>> >
> >> >>> > Antonio.
> >> >>> > --
> >> >>> > Antonio Prado
> >> >>> > (62) 8174 4383
> >> >>> > (62) 3278 0111
> >> >>> > www.antonioprado.eti.br
> >> >>> > [email protected]
> >> >>> >
> >> >>> >
> >> >>> > _______________________________________________
> >> >>> > pgbr-geral mailing list
> >> >>> > [email protected]
> >> >>> >
> > https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >> >>> >
> >> >>>
> >> >>>
> >> >>>
> >> >> --
> >> >> Antonio Prado
> >> >> (62) 8174 4383
> >> >> (62) 3278 0111
> >> >> www.antonioprado.eti.br
> >> >> [email protected]
> >> >>
> >> >>
> >> >> _______________________________________________
> >> >> pgbr-geral mailing list
> >> >> [email protected]
> >> >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >> >>
> >> >
> >> >
> >> >
> >> >
> >>
> >> _______________________________________________
> >> pgbr-geral mailing list
> >> [email protected]
> >> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
> >
>
> _______________________________________________
> pgbr-geral mailing list
> [email protected]
> https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
--
Antonio Prado
(62) 8174 4383
(62) 3278 0111
www.antonioprado.eti.br
[email protected]
_______________________________________________
pgbr-geral mailing list
[email protected]
https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral