Re: PROBLEMA BEGIN COMMIT

From: Alvaro Herrera <alvherre(at)alvh(dot)no-ip(dot)org>
To: Gabriel Ferro <gabrielrferro(at)yahoo(dot)com(dot)ar>
Cc: pgsql-es-ayuda(at)postgresql(dot)org
Subject: Re: PROBLEMA BEGIN COMMIT
Date: 2007-03-01 17:09:26
Message-ID: 20070301170926.GC2891@alvh.no-ip.org
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-es-ayuda

Gabriel Ferro escribió:
> Tengo una duda (una de tantas) si tengo una serie de instrucciones dentro de un begin commit, las que voy ejecutando desde un programa en VB6, si el programa se cierra inesperadamente no dberia deshacerse las operaciones?. esto no me funcionó
> por ejemplo tengo
>
> cnn.Execute "BEGIN;"
> cnn.Execute "SET CLIENT_ENCODING TO 'LATIN1';"
> pop = "SELECT * from ""Recibidas"" order by ""Dpta"",""Sumario"",""TipoInfo"""
> Set tuplas = cnn.Execute(pop)
> If tuplas.EOF() = False Then
> tuplas.MoveFirst
> Do While Not tuplas.EOF()
> cnn.Execute("INSERT INTO ""RecibidasDes"" VALUES ('" & tuplas!Dpta & "','" & tuplas!sumario & "','" & tuplas!TipoInfo & "','" & recuperararos(tuplas!info) & "');")
>
> Y AQUI SE CIERRA EL PROGRAMA, SIN ANTES LLEGAR A LA INSTRUCCION
> cnn.Execute "COMMIT;"
>
> AL CONSULTAR LA TABLA EL REGISTRO EFECTIVAMENTE SE INSERTO, ¿COMO IMPEDIR ESTO? ¿COMO HACER UN ROOLBACK CUANDO ESTO OCURRE?

Postgres hace eso que tu dices: si la transaccion queda sin cerrar, como
en el caso de arriba, se asume que debe ser abortada. Lo que se me
ocurre para explicar lo que estas viendo es:

1. VB esta "amablemente" haciendo un COMMIT al cerrar el programa
2. En alguna parte alguien esta haciendo un COMMIT sin que te des cuenta
3. Tu codigo tiene un bug que hace COMMIT y no te has dado cuenta
4. el BEGIN no se esta ejecutando

Creo que lo que deberias hacer es activar log_statements en
postgresql.conf para verificar cuales sentencias realmente estan siendo
ejecutadas.

--
Alvaro Herrera http://www.advogato.org/person/alvherre
"No hay ausente sin culpa ni presente sin disculpa" (Prov. francés)

In response to

Responses

Browse pgsql-es-ayuda by date

  From Date Subject
Next Message Gabriel Colina 2007-03-01 17:14:10 Re: Duda con la s vistas
Previous Message vbenitez 2007-03-01 16:38:27 Consulta a multiples BDs