#!/bin/sh
#
# \
exec /usr/local/bin/tclsh8.3 $0 $@

package require Pgtcl

set conninfo [list user=cz password=*** host=192.168.42.150 dbname=ttickets]
set db [pg_connect -conninfo $conninfo]

set statements [list "BEGIN work" \
       "INSERT INTO usersinfo VALUES ('em', 'Erika', 'Mustermann', '','')" \
       "INSERT INTO stati(ticketid, issuedBy, category) VALUES (0, 'em','reopend')" \
       "END work" ]


# Das erste Einfügen ist erfolgreich, beim zweiten Mal
# wird ein Fehler hervorgerufen
for {set i 0} {$i < 2} {incr i} {
   puts "Versuch $i"
   foreach sql $statements {
       set handle [pg_exec $db $sql]
       if {! [regexp OK [pg_result $handle -status]]} {
           puts stderr "Das Statement $sql war nicht erfolgreich:"
           puts stderr [pg_result $handle -error]
           pg_exec $db "ROLLBACK work"
       }
       pg_result $handle -clear
   }
}

pg_disconnect $db