Yes I would prefer to steer clear of Postgres functions as they seem to be able
to only handle fetches from a single table
But as of right now this is the only option for disabling Autocommit *feature*
Thanks/Merci Beaucoups-
Martin--
---------------------------------------------------------------------------
This e-mail message (including attachments, if any) is intended for the use of
the individual or entity to which it is addressed and may contain information
that is privileged, proprietary , confidential and exempt from disclosure. If
you are not the intended recipient, you are notified that any dissemination,
distribution or copying of this communication is strictly prohibited.
---------------------------------------------------------------------------
Le présent message électronique (y compris les pièces qui y sont annexées, le
cas échéant) s'adresse au destinataire indiqué et peut contenir des
renseignements de caractère privé ou confidentiel. Si vous n'êtes pas le
destinataire de ce document, nous vous signalons qu'il est strictement interdit
de le diffuser, de le distribuer ou de le reproduire.
----- Original Message -----
From: Jonathan Leffler
To: Martin Gainty
Cc: DBI Users Mailing List
Sent: Thursday, March 01, 2007 12:13 AM
Subject: Re: Perl-Postgres connection: 'Commit' method not found in DBI.
Advice?
On 2/28/07, Martin Gainty <[EMAIL PROTECTED]> wrote:
yep--
Aparently postgres thinks its smarter than anyone that wants to use it and
has Auto-commit ALWAYS turned on
If you find a way to turn this *feature* off let me know because it is
massively counter intuitive to normal operation of any other db on the planet
I'm not sure about PostgreSQL, but Informix has a somewhat similar mode - or
two somewhat similar modes. An unlogged (Informix) database has no transaction
support at all; you cannot do transactions, and each statement is nominally a
self-contained transaction (except that if an error occurs part way through,
the changes made so far are not undone - for DML statements). In a regular
logged database, each statement is a separate transaction - complete with
rollback so that if a statement fails part way through, the database is left as
if the statement had never been executed. In a logged database, you can
suppress the auto-commit mode by an explicit BEGIN WORK statement. This begins
a (multi-statement) transaction that is terminated by COMMIT WORK or ROLLBACK
WORK. If something happens to the client before COMMIT is executed, the
transaction is rolled back.
It doesn't take a lot of searching around the PostgreSQL documentation to
find:
BEGIN -- start a transaction block
Synopsis
BEGIN [ WORK | TRANSACTION ] [ transaction_mode [, ...] ]where transaction_mode
is one of: ISOLATION LEVEL { SERIALIZABLE | REPEATABLE READ | READ COMMITTED
| READ UNCOMMITTED }
READ WRITE | READ ONLY
I suspect you'll find that this 'turns off autocommit' for you.
--
Jonathan Leffler < [EMAIL PROTECTED]> #include <disclaimer.h>
Guardian of DBD::Informix - v2007.0226 - http://dbi.perl.org
"I don't suffer from insanity - I enjoy every minute of it."