| ## @file | |
| # This file is used to create/update/query/erase a common table | |
| # | |
| # Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR> | |
| # SPDX-License-Identifier: BSD-2-Clause-Patent | |
| # | |
| ## | |
| # Import Modules | |
| # | |
| import Common.EdkLogger as EdkLogger | |
| ## TableFile | |
| # | |
| # This class defined a common table | |
| # | |
| # @param object: Inherited from object class | |
| # | |
| # @param Cursor: Cursor of the database | |
| # @param TableName: Name of the table | |
| # | |
| class Table(object): | |
| def __init__(self, Cursor): | |
| self.Cur = Cursor | |
| self.Table = '' | |
| self.ID = 0 | |
| ## Create table | |
| # | |
| # Create a table | |
| # | |
| def Create(self, SqlCommand): | |
| self.Cur.execute(SqlCommand) | |
| self.ID = 0 | |
| EdkLogger.verbose(SqlCommand + " ... DONE!") | |
| ## Insert table | |
| # | |
| # Insert a record into a table | |
| # | |
| def Insert(self, SqlCommand): | |
| self.Exec(SqlCommand) | |
| ## Query table | |
| # | |
| # Query all records of the table | |
| # | |
| def Query(self): | |
| EdkLogger.verbose("\nQuery table %s started ..." % self.Table) | |
| SqlCommand = """select * from %s""" % self.Table | |
| self.Cur.execute(SqlCommand) | |
| for Rs in self.Cur: | |
| EdkLogger.verbose(str(Rs)) | |
| TotalCount = self.GetCount() | |
| EdkLogger.verbose("*** Total %s records in table %s ***" % (TotalCount, self.Table) ) | |
| EdkLogger.verbose("Query tabel %s DONE!" % self.Table) | |
| ## Drop a table | |
| # | |
| # Drop the table | |
| # | |
| def Drop(self): | |
| SqlCommand = """drop table IF EXISTS %s""" % self.Table | |
| self.Cur.execute(SqlCommand) | |
| EdkLogger.verbose("Drop tabel %s ... DONE!" % self.Table) | |
| ## Get count | |
| # | |
| # Get a count of all records of the table | |
| # | |
| # @retval Count: Total count of all records | |
| # | |
| def GetCount(self): | |
| SqlCommand = """select count(ID) from %s""" % self.Table | |
| self.Cur.execute(SqlCommand) | |
| for Item in self.Cur: | |
| return Item[0] | |
| ## Init the ID of the table | |
| # | |
| # Init the ID of the table | |
| # | |
| def InitID(self): | |
| self.ID = self.GetCount() | |
| ## Exec | |
| # | |
| # Exec Sql Command, return result | |
| # | |
| # @param SqlCommand: The SqlCommand to be executed | |
| # | |
| # @retval RecordSet: The result after executed | |
| # | |
| def Exec(self, SqlCommand): | |
| EdkLogger.debug(4, "SqlCommand: %s" % SqlCommand) | |
| self.Cur.execute(SqlCommand) | |
| RecordSet = self.Cur.fetchall() | |
| EdkLogger.debug(4, "RecordSet: %s" % RecordSet) | |
| return RecordSet |