2 # -*- coding: utf-8 -*-
3 # vim: sw=4 ts=4 expandtab ai
5 """Module for work with database"""
12 """class for work with database"""
15 self.conn = self.connect()
19 """connect to database"""
21 if os.access(dbname, os.F_OK|os.R_OK|os.W_OK):
22 conn = sqlite3.connect(dbname)
24 print "access to database file error"
28 def get_record(self, id):
30 """return record field"""
31 cur = self.conn.cursor()
32 cur.execute("select field.name, data.value "
33 "from data left join field "
34 "on data.id_field=field.id "
35 "where data.id=?", (id,))
38 print "key = %s value = %s" % (row[0], row[1])
39 self.data[row[0]] = row[1]
42 def get_allrecords(self, field):
45 cur = self.conn.cursor()
46 cur.execute("select data.id, data.value "
47 "from data left join field "
48 "on data.id_field=field.id "
49 "where field.name=?", (field,))
53 self.data[row[0]] = row[1]
56 def ins_record(self, rec):
58 """insert record into database"""
60 #conn = self.connect()
62 print "database connect error"
64 cur = self.conn.cursor()
65 cur.execute("select max(id) from data")
66 id_record = cur.fetchone()[0]
70 id_record = id_record + 1
71 print "id_record=%s" % (id_record,)
73 for key, val in rec.items():
74 print "key=%s value=%s" % (key, val)
75 cur.execute("select id from field where name=?", (key,))
77 id_field = cur.fetchone()
80 cur.execute("insert into field (name) values (?)", (key,))
81 id_field = cur.lastrowid
83 id_field = id_field[0]
84 # insert row into data
85 #print "id=%s id_field=%s value=%s" % (id_record, id_field, val)
87 cur.execute("insert into data (id, id_field, value) values (?, ?, ?)",
88 (id_record, id_field, i))
94 """clear all record from table data"""
97 print "database connect error"
100 cur.execute("delete from data")
101 cur.execute("delete from field")