insert record into database
authortanya <tanya@tanin.oblgaz>
Wed, 30 Dec 2009 10:10:02 +0000 (12:10 +0200)
committertanya <tanya@tanin.oblgaz>
Wed, 30 Dec 2009 10:10:02 +0000 (12:10 +0200)
database/db.py [new file with mode: 0755]

diff --git a/database/db.py b/database/db.py
new file mode 100755 (executable)
index 0000000..d1d6e52
--- /dev/null
@@ -0,0 +1,58 @@
+#!/usr/bin/python -tt
+# -*- coding: utf-8 -*-
+# vim: sw=4 ts=4 expandtab ai
+
+
+"""
+Main
+"""
+
+import sys
+import os
+import sqlite3
+
+# add mnemosyne directory to Python path in debug mode
+if os.path.basename(sys.argv[0]).endswith("debug"):
+    sys.path.insert(0, "../../")
+    sys.path.insert(0, "../")
+
+def connect():
+    """connect to database"""
+    file = "meabookdb";
+    if os.access(file, os.F_OK|os.R_OK|os.W_OK):
+        conn = sqlite3.connect(file)
+    else:
+        print "access to database file error"
+        conn = None
+    return conn
+
+def insRecord(record):
+    """insert record into database"""
+    #get id new record
+    conn = connect()
+    if conn is None:
+        print "database connect error"
+        return None
+    c = conn.cursor()
+    c.execute("select max(id) from data")
+    id_record = c.fetchone()[0] + 1
+    for k, v in record.items():
+        #print "key=%s value=%s" % (k, v)
+        c.execute("select id from field where name=?", (k,))
+        id_field = c.fetchone()[0]
+        if id_field is None:
+            #write new field ваы
+            c.execute("insert into field (name) values (?)", (k,))
+            id_field = c.lastrowid
+        
+        # insert row into data
+        print "id=%s id_field=%s value=%s" % (id_record, id_field, v)
+        c.execute("insert into data (id, id_field, value) values (?, ?, ?)", (id_record, id_field, v))
+    conn.commit()
+    conn.close()
+
+
+record = {"givenName":"Vasya", "cn":"Pupkin", "mail":"vasya@puplin.com"}
+insRecord(record)
+sys.exit(0)
+