1. Add a pre-action to replace "'" with "''" for sql statement
authorhche10x <hche10x@7335b38e-4728-0410-8992-fb3ffe349368>
Tue, 22 Jan 2008 08:48:20 +0000 (08:48 +0000)
committerhche10x <hche10x@7335b38e-4728-0410-8992-fb3ffe349368>
Tue, 22 Jan 2008 08:48:20 +0000 (08:48 +0000)
git-svn-id: https://buildtools.tianocore.org/svn/buildtools/trunk/BaseTools@968 7335b38e-4728-0410-8992-fb3ffe349368

Source/Python/Common/String.py
Source/Python/Table/Table.py
Source/Python/Table/TableDataModel.py
Source/Python/Table/TableDsc.py
Source/Python/Table/TableFile.py
Source/Python/Table/TableFunction.py
Source/Python/Table/TableIdentifier.py
Source/Python/Table/TablePcd.py

index e46d460..d021c96 100644 (file)
@@ -724,6 +724,15 @@ def SplitString(String):
         \r
     return String\r
 \r
+## Convert To Sql String\r
+#\r
+# 1. Replace "'" with "''" in each item of StringList\r
+# \r
+# @param StringList:  A list for strings to be converted\r
+#\r
+def ConvertToSqlString(StringList):\r
+    return map(lambda s: s.replace("'", "''") , StringList)\r
+\r
 ##\r
 #\r
 # This acts like the main() function for the script, unless it is 'import'ed into another\r
@@ -735,3 +744,4 @@ if __name__ == '__main__':
     print SplitModuleType('Librarsdsfwe')\r
     print NormPath('sdfas//dsfsadf//dsfsd')\r
     print NormPath('\\dsfsdf\\\\sd\\fsd\\dsfsdfsdf\\\\')\r
+    print ConvertToSqlString(("'sdf,'sdf'", "aaaaa'bbbbb"))\r
index 8a586b7..233f280 100644 (file)
@@ -43,8 +43,8 @@ class Table(object):
     # Insert a record into a table\r
     #\r
     def Insert(self, SqlCommand):\r
+        EdkLogger.debug(4, SqlCommand)\r
         self.Cur.execute(SqlCommand)\r
-        EdkLogger.debug(4, SqlCommand + " ... DONE!")\r
     \r
     ## Query table\r
     #\r
index 3ba5f19..671a019 100644 (file)
@@ -17,6 +17,7 @@
 import Common.EdkLogger as EdkLogger\r
 import CommonDataClass.DataClass as DataClass\r
 from Table import Table\r
+from Common.String import ConvertToSqlString\r
 \r
 ## TableDataModel\r
 #\r
@@ -58,6 +59,7 @@ class TableDataModel(Table):
     #\r
     def Insert(self, ID, CrossIndex, Name, Description):\r
         ID = self.GenerateID(ID)\r
+        (Name, Description) = ConvertToSqlString((Name, Description))\r
         SqlCommand = """insert into %s values(%s, %s, '%s', '%s')""" % (self.Table, ID, CrossIndex, Name, Description)\r
         Table.Insert(self, SqlCommand)\r
     \r
index cc1b9c8..9af9995 100644 (file)
@@ -17,6 +17,7 @@
 import Common.EdkLogger as EdkLogger\r
 import CommonDataClass.DataClass as DataClass\r
 from Table import Table\r
+from Common.String import ConvertToSqlString\r
 \r
 ## TableDsc\r
 #\r
@@ -82,6 +83,7 @@ class TableDsc(Table):
     #\r
     def Insert(self, ID, Model, Value1, Value2, Value3, Arch, BelongsToItem, BelongsToFile, StartLine, StartColumn, EndLine, EndColumn):\r
         ID = self.GenerateID(ID)\r
+        #(Value1, Value2, Value3, Arch) = ConvertToSqlString((Value1, Value2, Value3, Arch))\r
         SqlCommand = """insert into %s values(%s, %s, '%s', '%s', '%s', '%s', %s, %s, %s, %s, %s, %s)""" \\r
                      % (self.Table, ID, Model, Value1, Value2, Value3, Arch, BelongsToItem, BelongsToFile, StartLine, StartColumn, EndLine, EndColumn)\r
         Table.Insert(self, SqlCommand)\r
index 4018146..5cedc8a 100644 (file)
@@ -16,6 +16,7 @@
 #\r
 import Common.EdkLogger as EdkLogger\r
 from Table import Table\r
+from Common.String import ConvertToSqlString\r
 \r
 ## TableFile\r
 #\r
@@ -65,6 +66,7 @@ class TableFile(Table):
     #\r
     def Insert(self, ID, Name, ExtName, Path, FullPath, Model, TimeStamp):\r
         ID = self.GenerateID(ID)\r
+        (Name, ExtName, Path, FullPath) = ConvertToSqlString((Name, ExtName, Path, FullPath))\r
         SqlCommand = """insert into %s values(%s, '%s', '%s', '%s', '%s', %s, '%s')""" \\r
                                            % (self.Table, ID, Name, ExtName, Path, FullPath, Model, TimeStamp)\r
         Table.Insert(self, SqlCommand)\r
index de0f5cf..2bba518 100644 (file)
@@ -16,6 +16,7 @@
 #\r
 import Common.EdkLogger as EdkLogger\r
 from Table import Table\r
+from Common.String import ConvertToSqlString\r
 \r
 ## TableFunction\r
 #\r
@@ -80,6 +81,7 @@ class TableFunction(Table):
     #\r
     def Insert(self, ID, Header, Modifier, Name, ReturnStatement, StartLine, StartColumn, EndLine, EndColumn, BodyStartLine, BodyStartColumn, BelongsToFile):\r
         ID = self.GenerateID(ID)\r
+        (Header, Modifier, Name, ReturnStatement) = ConvertToSqlString((Header, Modifier, Name, ReturnStatement))\r
         SqlCommand = """insert into %s values(%s, '%s', '%s', '%s', '%s', %s, %s, %s, %s, %s, %s, %s)""" \\r
                                     % (self.Table, ID, Header, Modifier, Name, ReturnStatement, StartLine, StartColumn, EndLine, EndColumn, BodyStartLine, BodyStartColumn, BelongsToFile)\r
         Table.Insert(self, SqlCommand)\r
index fa46be7..501c164 100644 (file)
@@ -15,6 +15,7 @@
 # Import Modules\r
 #\r
 import Common.EdkLogger as EdkLogger\r
+from Common.String import ConvertToSqlString\r
 from Table import Table\r
 \r
 ## TableIdentifier\r
@@ -81,6 +82,7 @@ class TableIdentifier(Table):
     #\r
     def Insert(self, ID, Modifier, Type, Name, Value, Model, BelongsToFile, BelongsToFunction, StartLine, StartColumn, EndLine, EndColumn):\r
         ID = self.GenerateID(ID)    \r
+        (Modifier, Type, Name, Value) = ConvertToSqlString((Modifier, Type, Name, Value))\r
         SqlCommand = """insert into %s values(%s, '%s', '%s', '%s', '%s', %s, %s, %s, %s, %s, %s, %s)""" \\r
                                            % (self.Table, ID, Modifier, Type, Name, Value, Model, BelongsToFile, BelongsToFunction, StartLine, StartColumn, EndLine, EndColumn)\r
         Table.Insert(self, SqlCommand)\r
index 57c6da7..046db91 100644 (file)
@@ -16,6 +16,7 @@
 #\r
 import Common.EdkLogger as EdkLogger\r
 from Table import Table\r
+from Common.String import ConvertToSqlString\r
 \r
 ## TablePcd\r
 #\r
@@ -81,6 +82,7 @@ class TablePcd(Table):
     #\r
     def Insert(self, ID, CName, TokenSpaceGuidCName, Token, DatumType, Model, BelongsToFile, BelongsToFunction, StartLine, StartColumn, EndLine, EndColumn):\r
         ID = self.GenerateID(ID)\r
+        (CName, TokenSpaceGuidCName, DatumType) = ConvertToSqlString((CName, TokenSpaceGuidCName, DatumType))\r
         SqlCommand = """insert into %s values(%s, '%s', '%s', %s, '%s', %s, %s, %s, %s, %s, %s, %s)""" \\r
                                            % (self.Table, ID, CName, TokenSpaceGuidCName, Token, DatumType, Model, BelongsToFile, BelongsToFunction, StartLine, StartColumn, EndLine, EndColumn)\r
         Table.Insert(self, SqlCommand)\r