Take a try to use 'DEFERRED' model in sql operation
authorhche10x <hche10x@7335b38e-4728-0410-8992-fb3ffe349368>
Mon, 28 Jan 2008 07:25:30 +0000 (07:25 +0000)
committerhche10x <hche10x@7335b38e-4728-0410-8992-fb3ffe349368>
Mon, 28 Jan 2008 07:25:30 +0000 (07:25 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@978 7335b38e-4728-0410-8992-fb3ffe349368

Source/Python/Ecc/Database.py

index c5d2529..58a52b4 100644 (file)
@@ -15,7 +15,7 @@
 # Import Modules\r
 #\r
 import sqlite3\r
-import os\r
+import os, time\r
 \r
 import Common.EdkLogger as EdkLogger\r
 import CommonDataClass.DataClass as DataClass\r
@@ -46,7 +46,9 @@ DATABASE_PATH = "Database/Ecc.db"
 #\r
 class Database(object):\r
     def __init__(self, DbPath):\r
-        self.Conn = sqlite3.connect(DbPath)\r
+        print time.strftime('%H/%M/%S', time.localtime())\r
+        self.Conn = sqlite3.connect(DbPath, isolation_level = 'DEFERRED')\r
+        #self.Conn = sqlite3.connect(DbPath)\r
         self.Cur = self.Conn.cursor()\r
         self.TblDataModel = TableDataModel(self.Cur)\r
         self.TblFile = TableFile(self.Cur)\r
@@ -80,6 +82,11 @@ class Database(object):
         self.TblPcd.Create()\r
         self.TblIdentifier.Create()\r
         \r
+        #\r
+        # Start a Transaction\r
+        #\r
+        #self.Cur.execute("""BEGIN""")\r
+        \r
         #\r
         # Initialize table DataModel\r
         #\r
@@ -99,9 +106,22 @@ class Database(object):
     # Close the connection and cursor\r
     #\r
     def Close(self):\r
+        #\r
+        # Start a Transaction\r
+        #\r
+        #self.Cur.execute("""END""")\r
+        \r
+        #\r
+        # Commit to file\r
+        #        \r
         self.Conn.commit()\r
+        \r
+        #\r
+        # Close connection and cursor\r
+        #\r
         self.Cur.close()\r
         self.Conn.close()\r
+        print time.strftime('%H/%M/%S', time.localtime())\r
     \r
     ## Insert one file information\r
     #\r
@@ -218,16 +238,16 @@ class Database(object):
 #\r
 if __name__ == '__main__':\r
     EdkLogger.Initialize()\r
-    EdkLogger.SetLevel(EdkLogger.DEBUG_0)\r
+    EdkLogger.SetLevel(EdkLogger.VERBOSE)\r
     \r
     Db = Database(DATABASE_PATH)\r
     Db.InitDatabase()\r
     Db.QueryTable(Db.TblDataModel)\r
     \r
-    identifier1 = DataClass.IdentifierClass(-1, '', '', 'i1', 'aaa', DataClass.MODEL_IDENTIFIER_COMMENT, 1, -1, 32,  43,  54,  43)\r
+    identifier1 = DataClass.IdentifierClass(-1, '', '', "i''1", 'aaa', DataClass.MODEL_IDENTIFIER_COMMENT, 1, -1, 32,  43,  54,  43)\r
     identifier2 = DataClass.IdentifierClass(-1, '', '', 'i1', 'aaa', DataClass.MODEL_IDENTIFIER_COMMENT, 1, -1, 15,  43,  20,  43)\r
     identifier3 = DataClass.IdentifierClass(-1, '', '', 'i1', 'aaa', DataClass.MODEL_IDENTIFIER_COMMENT, 1, -1, 55,  43,  58,  43)\r
-    identifier4 = DataClass.IdentifierClass(-1, '', '', 'i1', 'aaa', DataClass.MODEL_IDENTIFIER_COMMENT, 1, -1, 77,  43,  88,  43)\r
+    identifier4 = DataClass.IdentifierClass(-1, '', '', "i1'", 'aaa', DataClass.MODEL_IDENTIFIER_COMMENT, 1, -1, 77,  43,  88,  43)\r
     fun1 = DataClass.FunctionClass(-1, '', '', 'fun1', '', 21, 2, 60,  45, 1, 23, 0, [], [])\r
     file = DataClass.FileClass(-1, 'F1', 'c', 'C:\\', 'C:\\F1.exe', DataClass.MODEL_FILE_C, '2007-12-28', [fun1], [identifier1, identifier2, identifier3, identifier4], [])\r
     Db.InsertOneFile(file)\r