opa, essa foi boa pq eu conhecia ese metoo aih do objeto conection aprendi mais essa
;) On Thu, 29 Jan 2009 17:59:43 -0200, Antonio Prado <[email protected]> wrote: > 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 > _______________________________________________ pgbr-geral mailing list [email protected] https://listas.postgresql.org.br/cgi-bin/mailman/listinfo/pgbr-geral
