added new functions to database
authorMax Usachev <maxusachev@gmail.com>
Tue, 8 Jun 2010 14:03:03 +0000 (17:03 +0300)
committerMax Usachev <maxusachev@gmail.com>
Tue, 8 Jun 2010 14:03:03 +0000 (17:03 +0300)
database/SQLite.py

index 656a331..83ebff0 100644 (file)
@@ -40,10 +40,42 @@ class SQLite:
             self.conn.execute("""INSERT INTO field values((SELECT max(id) 
             FROM field)+1, ?)""", (fname,))
 
+    def get_field_id_by_name(self, fname):
+        """Returns field id by it name."""
+
+        return self.conn.execute("""SELECT id FROM field WHERE name=?""", \
+            (fname,)).fetchone()[0]
+
+    def get_field_name_by_id(self, _id):
+        """Returns field id by it name."""
+
+        return self.conn.execute("""SELECT name FROM field WHERE id=?""", \
+            (_id,)).fetchone()[0]
+
+    def get_entry_by_id(self, _id):
+        """Returns full entry by it id."""
+
+        sql_res = self.conn.execute("""SELECT id_field, value FROM data 
+            WHERE id=?""", (_id,)).fetchall()
+        return dict([(self.get_field_name_by_id(field_id), value) for field_id, \
+            value in sql_res])
+
+    def get_all_entries(self):
+        """Returns list of all entries."""
+
+        ids = set([item[0] for item in self.conn.execute( \
+            """SELECT id FROM data""").fetchall()])
+        return [self.get_entry_by_id(_id) for _id in ids]
+
+
+
 
 if __name__ == "__main__":
-    db = SQLite('/tmp/')
-    db.update_field('test')
+    db = SQLite('/home/plastun/meabook')
+    #db.update_field('test')
+    #print db.get_field_id_by_name('fax')
+    #print db.get_entry_by_id(1)
+    print db.get_all_entries()
     db.close()