コード例 #1
0
    def update(self, record):
        keynames = []
        updates = []
        values = []

        for keyname in self.columns:
            if keyname in self.pk:
                continue
            keyval = record.get(keyname, None)
            updates.append("%s = ?" % (keyname, ))
            values.append(keyval)
        updatecols = ', '.join(updates)

        for keyname in self.pk:
            keyval = record.get(keyname, None)
            if keyval is None:
                continue
            keynames.append("%s = ?" % (keyname, ))
            values.append(keyval)

        if len(keynames) != len(self.pk):
            raise JBoxDBItemNotFound()
        criteria = ' where ' + ' and '.join(keynames)

        stmt = "update %s set %s%s" % (self.name, updatecols, criteria)

        c = JBoxSQLite3.conn().cursor()
        # self.log_debug("SQL: %s", stmt)
        c.execute(stmt, tuple(values))
        c.close()
        self.commit()
コード例 #2
0
    def update(self, record):
        keynames = []
        updates = []
        values = []
        names = []

        for keyname in self.columns:
            if keyname in self.pk:
                continue
            keyval = record.get(keyname, None)
            updates.append("`%s` = %%(%s)s" % (keyname, keyname))
            values.append(keyval)
            names.append(keyname)
        updatecols = ', '.join(updates)

        for keyname in self.pk:
            keyval = record.get(keyname, None)
            if keyval is None:
                continue
            keynames.append("`%s` = %%(%s)s" % (keyname, keyname))
            values.append(keyval)
            names.append(keyname)

        if len(keynames) != len(self.pk):
            raise JBoxDBItemNotFound()
        criteria = ' where ' + ' and '.join(keynames)

        stmt = "update %s set %s%s" % (self.name, updatecols, criteria)

        # self.log_debug("SQL: %s", stmt)
        c = JBoxCloudSQL.execute(stmt, dict(zip(names, values)))
        c.close()
コード例 #3
0
    def select(self, **kwargs):
        c = self._select(False, **kwargs)
        row = c.fetchone()
        if row is None:
            raise JBoxDBItemNotFound()

        item = dict(zip(self.columns, row))
        c.close()
        return item
コード例 #4
0
    def delete(self, record):
        names = []
        values = []
        for keyname in self.pk:
            keyval = record.get(keyname, None)
            if keyval is None:
                continue
            names.append("%s = ?" % (keyname, ))
            values.append(keyval)

        if len(names) != len(self.pk):
            raise JBoxDBItemNotFound()
        criteria = ' where ' + ' and '.join(names)
        stmt = "delete from %s%s" % (self.name, criteria)

        c = JBoxSQLite3.conn().cursor()
        # self.log_debug("SQL: %s", stmt)
        c.execute(stmt, tuple(values))
        c.close()
        self.commit()
コード例 #5
0
    def delete(self, record):
        names = []
        values = []
        colnames = []
        for keyname in self.pk:
            keyval = record.get(keyname, None)
            if keyval is None:
                continue
            names.append("`%s` = %%(%s)s" % (keyname, keyname))
            values.append(keyval)
            colnames.append(keyname)

        if len(names) != len(self.pk):
            raise JBoxDBItemNotFound()
        criteria = ' where ' + ' and '.join(names)
        stmt = "delete from %s%s" % (self.name, criteria)

        # self.log_debug("SQL: %s", stmt)
        c = JBoxCloudSQL.execute(stmt, dict(zip(colnames, values)))
        c.close()
コード例 #6
0
ファイル: impl_dynamodb.py プロジェクト: jngod2011/JuliaBox-1
 def record_fetch(table, **kwargs):
     try:
         return table.get_item(**kwargs)
     except ItemNotFound:
         raise JBoxDBItemNotFound()