there's a problem w/ using transactions that needs to be addressed. If you open a table within a transaction, it becomes locked until the transaction is committed or rolledback.
Just something to think about.