import os.path #! /usr/bin/python # To change this template, choose Tools | Templates # and open the template in the editor. __author__="bjschuma" __date__ ="$Jan 23, 2010 8:40:03 PM$" import sqlite3 #import settings from ct.path import * import ocarina def getdb(): return join(ocarina.vars.OCARINA,"ocarina.db") def dbexists(): return exists(getdb()) def connect(): path = getdb() con = sqlite3.connect(path) con.text_factory = str return con def disconnect(con): con.commit() con.close() class Statement(): def __init__(self): self.statement = "" self.con = connect() self.commit = True def __del__(self): self.con.close() def commitdb(self): self.con.commit() def execute(self,vals=None): if self.statement == "": return if vals==None: result = self.con.execute(self.statement) else: result = self.con.execute(self.statement,vals) if self.commit == True: self.commitdb() return result class CTable(Statement): def __init__(self,name): Statement.__init__(self) self.name = name self.cols = [] def addcol(self,name,type,params=""): self.cols += [(name,type,params)] def execute(self): self.statement = "CREATE TABLE "+self.name + " (" for index,col in enumerate(self.cols): if not index == 0: self.statement += ", " self.statement += " " + col[0] + " " + col[1] + " " + col[2] self.statement += " );" return Statement.execute(self) class Select(Statement): def __init__(self,What,From,Where=None): Statement.__init__(self) self.commit = False self.What = What self.From = From self.Where = Where def execute(self): self.statement = "SELECT " + self.What self.statement += " FROM " + self.From if not self.Where==None: self.statement += " WHERE " + self.Where return Statement.execute(self) class Insert(Statement): def __init__(self,table,values=[]): Statement.__init__(self) self.table = table self.values = values def addval(self,val): self.values += [val] def execute(self): self.statement = "INSERT INTO "+ self.table + " VALUES(" qs = "" for i in range(len(self.values)): if not i == 0: qs+="," qs+="?" #self.values[i] = str(self.values[i]) self.statement+=qs + ")" Statement.execute(self, self.values) class Remove(Statement): def __init__(self,table,where=""): Statement.__init__(self) self.table = table self.where = where def execute(self): self.statement = "DELETE FROM " + self.table if not self.where=="": self.statement += " WHERE "+self.where Statement.execute(self)