rendered paste bodydef insert_row_from_dict(env, table, dictionary):
items = dictionary.items()
# XXX this might be slightly retarded
keys = [str(item[0]) for item in items]
# values = ["'%s'" % str(item[1]) for item in items]
values = [item[1] for item in items]
sql = "INSERT INTO %s (%s) VALUES (%s)"
sql = sql % ( table, ','.join(keys), ','.join(['%s' for v in values]))
execute_non_query(env, sql, *values)
def update_row_from_dict(env, table, key, value, dictionary):
items = dictionary.items()
# XXX this might be slightly retarded
sql = "UPDATE %s SET %s WHERE %s='%s'"
sql = sql % ( table,
', '.join(["%s='%s'" % (item[0], item[1])
for item in items]),
key,
value)
execute_non_query(env, sql)
def insert_update(env, table, key, value, items):
if get_first_row(env, "SELECT * FROM %s WHERE %s=%s" % (table, key, value)):
update_row_from_dict(env, table, key, value, items)
else:
items[key] = value
insert_row_from_dict(env, table, items)