]>
git.proxmox.com Git - mirror_edk2.git/blob - BaseTools/Source/Python/Table/TableInf.py
2 # This file is used to create/update/query/erase table for inf datas
4 # Copyright (c) 2008 - 2018, Intel Corporation. All rights reserved.<BR>
5 # This program and the accompanying materials
6 # are licensed and made available under the terms and conditions of the BSD License
7 # which accompanies this distribution. The full text of the license may be found at
8 # http://opensource.org/licenses/bsd-license.php
10 # THE PROGRAM IS DISTRIBUTED UNDER THE BSD LICENSE ON AN "AS IS" BASIS,
11 # WITHOUT WARRANTIES OR REPRESENTATIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED.
17 from __future__
import absolute_import
18 import Common
.EdkLogger
as EdkLogger
19 import CommonDataClass
.DataClass
as DataClass
20 from Table
.Table
import Table
21 from Common
.StringUtils
import ConvertToSqlString
25 # This class defined a table used for data model
27 # @param object: Inherited from object class
30 class TableInf(Table
):
31 def __init__(self
, Cursor
):
32 Table
.__init
__(self
, Cursor
)
39 # @param ID: ID of a Inf item
40 # @param Model: Model of a Inf item
41 # @param Value1: Value1 of a Inf item
42 # @param Value2: Value2 of a Inf item
43 # @param Value3: Value3 of a Inf item
44 # @param Value4: Value4 of a Inf item
45 # @param Value5: Value5 of a Inf item
46 # @param Arch: Arch of a Inf item
47 # @param BelongsToItem: The item belongs to which another item
48 # @param BelongsToFile: The item belongs to which dsc file
49 # @param StartLine: StartLine of a Inf item
50 # @param StartColumn: StartColumn of a Inf item
51 # @param EndLine: EndLine of a Inf item
52 # @param EndColumn: EndColumn of a Inf item
53 # @param Enabled: If this item enabled
56 SqlCommand
= """create table IF NOT EXISTS %s (ID INTEGER PRIMARY KEY,
57 Model INTEGER NOT NULL,
58 Value1 VARCHAR NOT NULL,
64 BelongsToItem SINGLE NOT NULL,
65 BelongsToFile SINGLE NOT NULL,
66 StartLine INTEGER NOT NULL,
67 StartColumn INTEGER NOT NULL,
68 EndLine INTEGER NOT NULL,
69 EndColumn INTEGER NOT NULL,
70 Enabled INTEGER DEFAULT 0
72 Table
.Create(self
, SqlCommand
)
76 # Insert a record into table Inf
78 # @param ID: ID of a Inf item
79 # @param Model: Model of a Inf item
80 # @param Value1: Value1 of a Inf item
81 # @param Value2: Value2 of a Inf item
82 # @param Value3: Value3 of a Inf item
83 # @param Value4: Value4 of a Inf item
84 # @param Value5: Value5 of a Inf item
85 # @param Arch: Arch of a Inf item
86 # @param BelongsToItem: The item belongs to which another item
87 # @param BelongsToFile: The item belongs to which dsc file
88 # @param StartLine: StartLine of a Inf item
89 # @param StartColumn: StartColumn of a Inf item
90 # @param EndLine: EndLine of a Inf item
91 # @param EndColumn: EndColumn of a Inf item
92 # @param Enabled: If this item enabled
94 def Insert(self
, Model
, Value1
, Value2
, Value3
, Value4
, Value5
, Arch
, BelongsToItem
, BelongsToFile
, StartLine
, StartColumn
, EndLine
, EndColumn
, Enabled
):
96 (Value1
, Value2
, Value3
, Value4
, Value5
, Arch
) = ConvertToSqlString((Value1
, Value2
, Value3
, Value4
, Value5
, Arch
))
97 SqlCommand
= """insert into %s values(%s, %s, '%s', '%s', '%s', '%s', '%s', '%s', %s, %s, %s, %s, %s, %s, %s)""" \
98 % (self
.Table
, self
.ID
, Model
, Value1
, Value2
, Value3
, Value4
, Value5
, Arch
, BelongsToItem
, BelongsToFile
, StartLine
, StartColumn
, EndLine
, EndColumn
, Enabled
)
99 Table
.Insert(self
, SqlCommand
)
105 # @param Model: The Model of Record
107 # @retval: A recordSet of all found records
109 def Query(self
, Model
):
110 SqlCommand
= """select ID, Value1, Value2, Value3, Arch, BelongsToItem, BelongsToFile, StartLine from %s
112 and Enabled > -1""" % (self
.Table
, Model
)
113 EdkLogger
.debug(4, "SqlCommand: %s" % SqlCommand
)
114 self
.Cur
.execute(SqlCommand
)
115 return self
.Cur
.fetchall()