Skip site navigation (1) Skip section navigation (2)

Fw: pg_TCL and COMMIT

From: "Paul Skinner" <skin(at)skin(dot)dhs(dot)org>
To: <pgsql-novice(at)postgresql(dot)org>
Subject: Fw: pg_TCL and COMMIT
Date: 2000-07-14 02:02:40
Message-ID: 000d01bfed37$979c99b0$02320a0a@k6500 (view raw or flat)
Thread:
Lists: pgsql-novice
Anybody?

----- Original Message ----- 
From: Paul Skinner 
To: pgsql-novice(at)postgresql(dot)org 
Sent: Monday, July 10, 2000 5:30 PM
Subject: pg_TCL and COMMIT


Greetings,

    Just joined the list and hope someone can answer this for me.  
    
Why can't I successfully use a SELECT statement within a transaction (BEGIN) ?  I get a message saying that the transaction is aborted, as a result I have to build all my queries in a list and issue them to the backend on the outside of a loop.  I pretty sure I did it with oratcl for 8.0.x but I don't have an environment ready to try it...


....                        set srvrrules ""
                        # An array of hosts and info...
                        foreach rule [array names rules_array] {
                                # Get the key to the rule
                                set ruleidx [findrule $rule $conn]
                                # If it didn't return, add the rule to the DB ...
                                if {[string length $ruleidx] == 0} {
                                        addrule $rule $conn
                                }
                                # .... and get it's key.
                                set ruleidx [findrule $rule $conn]
                                # RUNNING THE UPDATE HERE WOULD BE COOL!!
                                # but I add it to a list instead, because putting the key checks in the BEGIN; 
                                # causes the TX to abort.

                                lappend SQLRules [ SQLaddsrvrrule $ruleidx $srvridx $rules_array($rule)]
                        }
                        ExecSql "BEGIN;" $conn
                        ExecSql "Delete from GG_srvr_rules where srvr = $srvridx;" $conn
                        ExecSql "update GG_players set online = 'f' where srvr = $srvridx" $conn


                        foreach statement $SQLRules {
                                ExecSql $statement $conn
                        }
                        ExecSql "COMMIT;" $conn
                        unset SQLRules
                    ....           

Paul

pgsql-novice by date

Next:From: igorDate: 2000-07-14 04:10:30
Subject: win Drivers for postgreSQL 7.0
Previous:From: ghaverlaDate: 2000-07-13 23:01:53
Subject: Re: tuple maximum size; plpgsql to sendmail?

Privacy Policy | About PostgreSQL
Copyright © 1996-2014 The PostgreSQL Global Development Group