self.data[row[0]] = row[1]
return self.data
+ def get_id(self, table, value):
+
+ """get id for value into table"""
+ if self.conn is None:
+ return None
+ cur = self.conn.cursor()
+ query = "select id from %s where name='%s'" % (table, value)
+ cur.execute(query)
+ res = cur.fetchone()
+ id = 0
+ if res is None:
+ query = "insert into %s (name) values ('%s')" % (table, value)
+ cur.execute(query)
+ id = cur.lastrowid
+ else:
+ id = res[0]
+ return id
+
def ins_record(self, rec):
"""insert record into database"""
id_record = id_record + 1
print "id_record=%s" % (id_record,)
+ struct = ["", ""]
for key, val in rec.items():
- print "key=%s value=%s" % (key, val)
- cur.execute("select id from field where name=?", (key,))
-
- id_field = cur.fetchone()
- if id_field is None:
- #write new field ваы
- cur.execute("insert into field (name) values (?)", (key,))
- id_field = cur.lastrowid
- else:
- id_field = id_field[0]
+ #print "key=%s value=%s" % (key, val)
+ #cur.execute("select id from field where name=?", (key,))
+
+ #id_field = cur.fetchone()
+ #if id_field is None:
+ # #write new field ваы
+ # cur.execute("insert into field (name) values (?)", (key,))
+ # id_field = cur.lastrowid
+ #else:
+ # id_field = id_field[0]
# insert row into data
#print "id=%s id_field=%s value=%s" % (id_record, id_field, val)
+ id_field = self.get_id("field", key)
+ if key == 'company':
+ struct[0] = val
+ if key == 'department':
+ struct[1] = val
for i in val:
cur.execute("insert into data (id, id_field, value) values (?, ?, ?)",
(id_record, id_field, i))
+
+ #insert comppane into table struct
+ id0 = self.get_id("struct", struct[0][0])
+ cur.execute("update struct set parent=0 where id=?", (id0,))
+ id1 = self.get_id("struct", struct[1][0])
+ cur.execute("update struct set parent=? where id=?", (id0, id1))
+ cur.execute("insert into relation (id_data, id_struct) values (?, ?)", (id_record, id1))
self.conn.commit()
#conn.close()
cur = conn.cursor()
cur.execute("delete from data")
cur.execute("delete from field")
+ cur.execute("delete from struct")
+ cur.execute("delete from relation")
conn.commit()
conn.close()