Autocommit

From: Denkewitz Lars <lars(dot)denkewitz(at)dogro(dot)de>
To: "'pgsql-de-allgemein(at)postgresql(dot)org'" <pgsql-de-allgemein(at)postgresql(dot)org>
Subject: Autocommit
Date: 2005-07-18 13:59:41
Message-ID: 527CFCD935ABD711A86E0003473A917E077BCF@SpiritII
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-de-allgemein

Hallo,

ich versuche derzeit die Logik des Autocommits bzgl der libpq-Schnittstelle
zu begreifen. Laut Handbuch ist AUTOCOMMIT standardmäßig auf OFF, wenn man
es einmal eingeschaltet hat, kann man es aber auch nicht mehr abschalten, da
diese Möglichkeit ab Version 7.4 entfernt wurde. Autocommit=false
(Standardeinstellung) bedeutet laut Handbuch:

Wenn auf falsch gesetzt, dann schließt PostgreSQL Transaktionen nur dann ab,
wenn ein COMMIT ausdrücklich ausgeführt wird.

Soweit so gut, ich habe nun folgenden (vereinfachten) Quelltext:

conn =
PQsetdbLogin("localhost","5432","","","mbund_backup","postgres","postgres");

PQexec(conn,"insert into testdb values(5090,444,333)");

PQexec(conn,"rollback");
PQfinish(conn);

Der Satz ist nun leider drin, der Server (Version 8.0.3) meldet: "WARNING:
there is no transaction in progress".

Im Gegensatz zur libpqg-Schnittstelle wird o.g. Verhalten jedoch genau
eingehalten, wenn man die ECPG-Schnittslle verwendet.

Dies widerspricht meiner Meinung nach der obigen Beschreibung, kann jemand
zur Erklärung des geschilderten Sachverhaltes beitragen?

MfG
Lars Denkewitz

Browse pgsql-de-allgemein by date

  From Date Subject
Next Message Michael Meskes 2005-07-18 18:26:06 Re: LinuxWorld Frankfurt
Previous Message Kretschmer Andreas 2005-07-14 16:47:14 Re: Se