Re: DBI driver and transactions - Mailing list pgsql-general

From Peter Haworth
Subject Re: DBI driver and transactions
Date
Msg-id PGM.20030204110024.25949.2969@edison.ioppublishing.com
Whole thread Raw
In response to Re: DBI driver and transactions  ("Nigel J. Andrews" <nandrews@investsystems.co.uk>)
List pgsql-general
On Mon, 3 Feb 2003 14:49:39 +0000 (GMT), Nigel J. Andrews wrote:
> I presume that the issue here is that in the 1 or 0 rows returned case
> where 1 row indicates I have a problem then I am not fetching from or
> finishing that statement. Although, in the debugger I've seen the Active
> flag still set after doing a single fetch on a 1 row resultset.

The problem is that the statement doesn't get marked inactive until you have
fetched the row after the last one:

  # There are some rows to fetch here
  $sth1->execute;  # Active
  ...
  $sth1->fetch;    # Last row returned, still active
  $sth1->fetch;    # undef returned, now it's inactive

  # No rows to fetch in this case
  $sth0->execute;  # Active
  $sth0->fetch;    # undef returned, now it's inactive

As you can see, this behaviour is necessary in order that empty result sets
can be recognised. Otherwise you'd be fetching on an inactive handle.

--
    Peter Haworth    pmh@edison.ioppublishing.com
Hi, this is Ken. What's the root password?

pgsql-general by date:

Previous
From: Richard Huxton
Date:
Subject: Re: UNION problem
Next
From: "Damjan Pipan"
Date:
Subject: HELP NEEDED: Recreating DROP columns