def delete(self): """ Delete an object """ sql = "delete from " + self.TABLE_NAME sql += " where " + self.PRIMARY_KEY + " = %(pkval)s" pkval = self.__dict__[self.PRIMARY_KEY] DB.perform(sql)
def insert(self, generate_new_pkey= True): """ Insert a new object, but only if it hasn't been inserted yet """ if generate_new_pkey: if self.PRIMARY_KEY in self.__dict__: if self.__dict__[self.PRIMARY_KEY] != None: raise Exception('primary key already set') sql = "insert into " + self.TABLE_NAME sql += "(" + self.all_fields_sql(with_table_prefix=False) + ") " if generate_new_pkey: self.__dict__[self.PRIMARY_KEY] = int(DB.oneval("select nextval('" + self.SEQ_NAME + "')")) sql += "values (" + ",".join([self._sql_insert_value(f) for f in self.FIELDS]) + ")" DB.perform(sql, extra_vars = self._prepare_sql_values())
def update(self): """ Update an object """ sql = "update " + self.TABLE_NAME sql += " set " field_statements = [] for field in self.FIELDS: try: if field == self.PRIMARY_KEY: continue except: continue field_statements.append(field + " = " + self._sql_insert_value(field)) sql += ",".join(field_statements) sql += " where " + self.PRIMARY_KEY + " = %(" + self.PRIMARY_KEY + ")s" DB.perform(sql, extra_vars = self._prepare_sql_values())