# This example will use a for-loop to run multiple queries in a single Transaction, and rollback if an error occurs.
# Create some variables for use later
txId = system.db.beginTransaction(timeout=5000)
status=2
query = "UPDATE MachineStatus SET status=? WHERE ID=?"
errors = False # A flag to denote if we ran into a problem with a query during the transaction
for machineId in range(8):
try:
system.db.runPrepUpdate(query, args=[status, machineId], tx=txId)
except:
errors = True
break
# If we encountered an error...
if errors:
# ...then rollback the transaction
system.db.rollbackTransaction(txId)
else:
# Otherwise, commit it
system.db.commitTransaction(txId)
# In either case, close the transaction when we're done.
system.db.closeTransaction(txId)