2010-03-18 00:25:45 -04:00
|
|
|
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
|
2010-03-21 17:06:04 -04:00
|
|
|
#import settings
|
2010-03-18 00:25:45 -04:00
|
|
|
from ct.path import *
|
|
|
|
import ocarina
|
|
|
|
|
|
|
|
|
|
|
|
def getdb():
|
2010-05-16 23:21:20 -04:00
|
|
|
return join(ocarina.vars.OCARINA,"ocarina.db")
|
2010-03-18 00:25:45 -04:00
|
|
|
|
|
|
|
|
|
|
|
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)
|