Implement Database.update() to change only modified columns

This commit is contained in:
XANTRONIX Development 2024-12-04 14:36:11 -05:00
parent 16ac4906d0
commit a319650004

View file

@ -110,6 +110,21 @@ class Database():
setattr(obj, table.key, cr.lastrowid)
def update(self, obj):
if not obj.__dirty__:
return
dirty = [k for k in obj.__dirty_columns__ if obj.__dirty_columns__[k] > 0]
table = type(obj)
sql = f"update {table.name} set "
sql += ", ".join([f"{k} = ?" for k in dirty])
sql += f" where {table.key} = ?"
values = [getattr(obj, k) for k in dirty]
values.append(getattr(obj, table.key))
self.db.execute(sql, values)
def query_sql(self, table, sql, values=list()):
cr = DatabaseTableCursor(table, self.db.cursor())
cr.execute(sql, values)