from sqlalchemy.ext import sqlsoup

class SqlSoup(sqlsoup.SqlSoup):
    def begin(self, *args, **kw):
        return sqlsoup.Session.begin(*args, **kw)

    def commit(self, *args, **kw):
        return sqlsoup.Session.commit(*args, **kw)

    def rollback(self, *args, **kw):
        return sqlsoup.Session.rollback(*args, **kw)

    def close(self, *args, **kw):
        return sqlsoup.Session.close(*args, **kw)

    def flush(self, *args, **kw):
        return sqlsoup.Session.flush(*args, **kw)

db = SqlSoup("mssql://username:password@server/dbname")
connection = db.bind.connect()

val = "NEW VALUE"
claimid = 50744

trans = connection.begin()
print "Updating claim value(s)..."
claim = db.claims.filter_by(Id = claimid).first()
claim.Details = val
trans.commit()
print claim.Details

trans = connection.begin()
print "Updating claimfos value(s)..."
claimfo = db.claimfos.filter_by(Cla_ID = claimid).first()
claimfo.VoyageFrom = val
trans.commit()
print claimfo.VoyageFrom

db.commit()
connection.close()
db.close()
