Обсуждение: determining if there's a transaction in progress

Поиск
Список
Период
Сортировка

determining if there's a transaction in progress

От
Daniel Kelley
Дата:
hi-

i'm using libpq.  is there any way to determine if there is a transaction
is process thru libpq?

specifically, i'm looking for a function that would tell me whether or not
there are changes that should be committed to the db before program exit.

thanks-

dan




Re: determining if there's a transaction in progress

От
Steve Howe
Дата:
Hello Daniel,

Friday, August 16, 2002, 10:54:26 AM, you wrote:


DK> hi-

DK> i'm using libpq.  is there any way to determine if there is a transaction
DK> is process thru libpq?
There is not.

DK> specifically, i'm looking for a function that would tell me whether or not
DK> there are changes that should be committed to the db before program exit.
If you want to ensure it, I suggest you to *always* start a
transaction and then commit it at the end.

------------- 
Best regards,Steve Howe                           mailto:howe@carcass.dhs.org



Re: determining if there's a transaction in progress

От
"Warren W. Gay VE3WWG"
Дата:
Steve Howe wrote:

>Hello Daniel,
>Friday, August 16, 2002, 10:54:26 AM, you wrote:
>DK> hi-
>DK> i'm using libpq.  is there any way to determine if there is a transaction
>DK> is process thru libpq?
>
>There is not.
>  
>
I too could benefit from a libpq feature that indicates if a transaction 
is pending. This
helps in determining in a destructor (or Ada finalization) whether the 
default action
to rollback/commit is necessary (rather than depend upon the server 
default action).
Assuming it is always necessary is clumsy, and imposes unnecessary 
overhead in
situations where a transaction may not be in progress.

Wish 2:

After performing an INSERT operation, with a column containing a serial 
value,
it would be nice to obtain that serial value without having to resort to 
a subsequent
SELECT on OID to get at it.  INFORMIX (and ORACLE?) make this information
available to the embedded C/C++ clients.  The same in libpq would be more
efficient.

Thanks, Warren.
-- 

Warren W. Gay VE3WWG
http://home.cogeco.ca/~ve3wwg





Re: determining if there's a transaction in progress

От
Björn Lundin
Дата:
Warren W. Gay VE3WWG wrote:
<cut>

> I too could benefit from a libpq feature that indicates if a transaction
> is pending. This
> helps in determining in a destructor (or Ada finalization) whether the
> default action
> to rollback/commit is necessary (rather than depend upon the server
> default action).
> Assuming it is always necessary is clumsy, and imposes unnecessary
> overhead in
> situations where a transaction may not be in progress.
</cut>

In Ada, you could keep track of transaction state in a package.
Put 'start_trans', 'commit' and 'rollback' procedures that changes the 
transaction state accordingly. You'll then need a function 
'trans_in_progress' to check it

Example at http://home.swipnet.se/lundin/ada_95_tools.html

/Bj�rn