Example #1
0
    def update(self, db, name, conds, vals):
        conds = dictify(conds)
        vals = dictify(vals)
        tab = db.getTable(name)
        columns = self.getColumns(db, name)

        # should work doesn't work :(
        # q = db.session.query(tab)
        # q = q.filter_by(**conds)
        # q = q.update(vals)

        q = db.getTable(name).update()
        for key, value in conds.items():
            q = self.where(q, key, value, tab, columns)
        q = q.values(vals)
        result = db.session.connection().execute(q)
        if result.rowcount == 0:
            print(" * skipped update {}".format(json.dumps(conds)), file=sys.stderr)
            self.skips += 1
        else:
            self.updates += result.rowcount
Example #2
0
 def insert(self, db, name, vals):
     columns = self.getColumns(db, name)
     vals = dictify(vals)
     keys = vals.keys()
     for key in keys:
         if vals[key] == '':
             if columns[key]['primary']:
                 # don't try to set blank primary keys, assume they are autoincrement
                 vals.pop(key)
     q = db.getTable(name).insert()
     q = q.values(vals)
     db.session.connection().execute(q)
     self.inserts += 1
Example #3
0
    def update(self, db, name, conds, vals):
        conds = dictify(conds)
        vals = dictify(vals)
        tab = db.getTable(name)
        columns = self.getColumns(db, name)

        # should work doesn't work :(
        # q = db.session.query(tab)
        # q = q.filter_by(**conds)
        # q = q.update(vals)

        q = db.getTable(name).update()
        for key, value in conds.items():
            q = self.where(q, key, value, tab, columns)
        q = q.values(vals)
        result = db.session.connection().execute(q)
        if result.rowcount == 0:
            print(" * skipped update {}".format(json.dumps(conds)),
                  file=sys.stderr)
            self.skips += 1
        else:
            self.updates += result.rowcount
Example #4
0
 def insert(self, db, name, vals):
     columns = self.getColumns(db, name)
     vals = dictify(vals)
     keys = vals.keys()
     for key in keys:
         if vals[key] == "":
             if columns[key]["primary"]:
                 # don't try to set blank primary keys, assume they are autoincrement
                 vals.pop(key)
     q = db.getTable(name).insert()
     q = q.values(vals)
     db.session.connection().execute(q)
     self.inserts += 1
Example #5
0
 def delete(self, db, name, conds):
     conds = dictify(conds)
     tab = db.getTable(name)
     columns = self.getColumns(db, name)
     q = db.getTable(name).delete()
     for key, value in conds.items():
         q = self.where(q, key, value, tab, columns)
     result = db.session.connection().execute(q)
     if result.rowcount == 0:
         print(" * skipped delete {}".format(json.dumps(conds)), file=sys.stderr)
         self.skips += 1
     else:
         self.deletes += result.rowcount
Example #6
0
 def delete(self, db, name, conds):
     conds = dictify(conds)
     tab = db.getTable(name)
     columns = self.getColumns(db, name)
     q = db.getTable(name).delete()
     for key, value in conds.items():
         q = self.where(q, key, value, tab, columns)
     result = db.session.connection().execute(q)
     if result.rowcount == 0:
         print(" * skipped delete {}".format(json.dumps(conds)),
               file=sys.stderr)
         self.skips += 1
     else:
         self.deletes += result.rowcount