# HG changeset patch # User Jeff Hammel # Date 1329512349 28800 # Node ID 5baa23a8d32f04210152fca48a07c36474f89dd3 # Parent f7edadebb1dec1d78252db3127b3f71e6a795887 more stuff diff -r f7edadebb1de -r 5baa23a8d32f schema/sql.py --- a/schema/sql.py Fri Feb 17 12:20:51 2012 -0800 +++ b/schema/sql.py Fri Feb 17 12:59:09 2012 -0800 @@ -33,10 +33,13 @@ def update(self, table, **where): pass - def select(self, table, id, **where): - if id is None: - id = '*' - return self("SELECT ? FROM ? WHERE %s" % 'AND '.join(['%s=%s' % (i, repr(j)) for i, j in where.items()])) + def select(self, table, what=None, **where): + if what is None: + what = '*' + statement = "SELECT %s FROM %s" % (what, table) + if where: + statement += " WHERE %s" % 'AND '.join(['%s=%s' % (i, repr(j)) for i, j in where.items()]) + return self(statement) def tables(self): """return the tables available in the db""" @@ -65,6 +68,14 @@ info = self("PRAGMA table_info(%s)" % table) return [i[1] for i in info] + def insert(self, table, values): + """ + insert a row + """ + assert len(values) == len(self.columns(table)) + self("INSERT INTO %s VALUES (%s)" % (table, ','.join(["?" for i in values])), + values) + if __name__ == '__main__': db = SQL() @@ -77,3 +88,9 @@ assert db.tables() == set(['foo', 'fleem']) columns = db.columns('foo') assert columns == ['bar', 'blarg'] + + # add some values + db.insert('foo', (1, 'BLARG!!!!!')) + db.insert('foo', (7, 'BLARG?????')) + values = db.select('foo') + assert values == [(1, u'BLARG!!!!!'), (7, u'BLARG?????')]