All pastes #1525337 Raw Edit

Stuff

public text v1 · immutable
#1525337 ·published 2009-08-11 17:42 UTC
rendered paste body
def 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)