python - How to return sqlite3 db access responses -


i'm new python. i've created sqlite3 db wrapper class handle database interaction in application. question how return success/failure messages db wrapper class methods, addrow, updrow (which add , update rows) invoking program?

here's class code cobbled far:-

class dbmanager(object):     def __init__(self, db):         self.conn = lite.connect(db)         self.conn.execute('pragma foreign_keys = on')         self.conn.execute('pragma synchronous=off')         self.conn.commit()         self.cur = self.conn.cursor()      def query(self, arg):         self.cur.execute(arg)          self.conn.commit()         return self.cur      def addrow(self, tablename, data):         """         insert data table. data not have escaped.         """         global actinserts          # create new cursor         # tc = self.conn.cursor() # opened @ init           tablelist = ""         valueholder = ""         valuelist = []          key, value in data.items():             if len(tablelist) > 0:                 tablelist += ', '                 valueholder += ', '              # add table column list             tablelist += key              # add holder             valueholder += '?'              # build insert values              valuelist.append(value)          # perform , commit insert                try:             dbresponse = self.cur.execute("insert " + tablename + " (" + tablelist + ") values (" + valueholder + ");", valuelist)             actinserts += 1         except lite.error, e:             dbresponse = 'sqlite error np: ' + e.args[0]              print 'sqlite error np: ' + e.args[0]          return dbresponse      def closeconnection (self):         self.conn.commit()         self.conn.close()       def __del__(self):         self.conn.close() 

i think there 2 ways can this. can:

  1. change return type of function tuple of (error_code, sql_results), or
  2. throw exception if query fails (or don't catch 1 handling) , leave exception handling logic user (calling program).

i think option 2 better way.

also, think query building more clear (or @ least more concise) using following (assumes data dictionary)

tablelist = ','.join(list(data.viewkeys())) valueholder = ','.join(['?' in data.viewkeys()]) valuelist = list(data.viewvalues()) 

Comments

Popular posts from this blog

c++ - OpenCV Error: Assertion failed <scn == 3 ::scn == 4> in unknown function, -

php - render data via PDO::FETCH_FUNC vs loop -

The canvas has been tainted by cross-origin data in chrome only -