From 8ee53263e2a5aeaeaace37e536e1a6bf4a68ebbf Mon Sep 17 00:00:00 2001 From: Marius Sandu-Popa Date: Fri, 6 Nov 2009 17:58:17 +0200 Subject: [PATCH] added return to Access and Writer select methods --- auto/db/DatabaseAccess.py | 38 ++++++++++++++++++++++++++++++-------- auto/db/DatabaseWriter.py | 4 ++-- 2 files changed, 32 insertions(+), 10 deletions(-) diff --git a/auto/db/DatabaseAccess.py b/auto/db/DatabaseAccess.py index d587b82..31e925d 100644 --- a/auto/db/DatabaseAccess.py +++ b/auto/db/DatabaseAccess.py @@ -16,7 +16,8 @@ class DatabaseAccess: insert_swarms - row fields to be added are passed as separate arguments """ - + operators={'eq':'=', 'neq':'<>', 'gt':'>', 'gte':'>=', 'lt':'<', 'lte':'<=', 'lk':'LIKE'} + def __init__ (self, dbname): self.dbname = dbname @@ -208,13 +209,24 @@ class DatabaseAccess: def insert_status_messages(self, cs_id, timestamp, peer_num, dht, download_speed, upload_speed, download_size, upload_size, eta): self.insert_status_messages_row([cs_id, timestamp, peer_num, dht, download_speed, upload_speed, download_size, upload_size, eta]) - def select_status_messages(self, show = True, cs_id = -1): + def select_status_messages(self, show = True, cs_id = -1, restrictArray=None): try: if cs_id == -1: self.cursor.execute("select * from status_messages") else: - self.cursor.execute("select * from status_messages where cs_id=?", (cs_id, )) - if show == True: + values = (cs_id, ) + query = "select * from status_messages where cs_id=? and " + + if restrictArray: + for (key, value, op) in restrictArray: + query += "%s %s ? and " % (key, self.operators[op]) + values += (value, ) + + query = query.strip('and ') + print query, values + self.cursor.execute(query, values) + + if show == True: for row in self.cursor: print row else: @@ -243,14 +255,24 @@ class DatabaseAccess: def insert_verbose_messages(self, cs_id, timestamp, peer_ip, peer_port, message_type, _index, begin, length, listen_port): self.insert_verbose_messages_row([cs_id, timestamp, peer_ip, peer_port, message_type, _index, begin, length, listen_port]) - - def select_verbose_messages(self, show = True, cs_id = -1): + + def select_verbose_messages(self, show = True, cs_id = -1, restrictArray=None): try: if cs_id == -1: self.cursor.execute("select * from verbose_messages") else: - self.cursor.execute("select * from verbose_messages where cs_id=?", (cs_id, )) - if show == True: + values = (cs_id, ) + query = "select * from verbose_messages where cs_id=? and " + if restrictArray: + for (key, value, op) in restrictArray: + query += "%s %s ? and " % (key, self.operators[op]) + values += (value, ) + + query = query.strip('and ') + #print query, values + self.cursor.execute(query, values) + + if show == True: for row in self.cursor: print row else: diff --git a/auto/db/DatabaseWriter.py b/auto/db/DatabaseWriter.py index ab7a733..a9d2284 100644 --- a/auto/db/DatabaseWriter.py +++ b/auto/db/DatabaseWriter.py @@ -35,13 +35,13 @@ class DatabaseWriter: self.dba.select_status_messages(True, cs_id) def select_status_messages(self, cs_id = -1): - self.dba.select_status_messages(False, cs_id) + return self.dba.select_status_messages(False, cs_id) def show_verbose_messages(self, cs_id = -1): self.dba.select_verbose_messages(True, cs_id) def select_verbose_messages(self, cs_id = -1): - self.dba.select_verbose_messages(False, cs_id) + return self.dba.select_verbose_messages(False, cs_id) def delete_status_messages(self, cs_id = -1): self.dba.delete_status_messages(cs_id) -- 2.20.1