(self, detailed=False)
| 124 | return False |
| 125 | |
| 126 | def checkDbmsOs(self, detailed=False): |
| 127 | if Backend.getOs() and Backend.getOsVersion() and Backend.getOsServicePack(): |
| 128 | return |
| 129 | |
| 130 | if not Backend.getOs(): |
| 131 | Backend.setOs(OS.WINDOWS) |
| 132 | |
| 133 | if not detailed: |
| 134 | return |
| 135 | |
| 136 | infoMsg = "fingerprinting the back-end DBMS operating system " |
| 137 | infoMsg += "version and service pack" |
| 138 | logger.info(infoMsg) |
| 139 | |
| 140 | infoMsg = "the back-end DBMS operating system is %s" % Backend.getOs() |
| 141 | |
| 142 | self.createSupportTbl(self.fileTblName, self.tblField, "varchar(1000)") |
| 143 | inject.goStacked("INSERT INTO %s(%s) VALUES (%s)" % (self.fileTblName, self.tblField, "@@VERSION")) |
| 144 | |
| 145 | # Reference: https://en.wikipedia.org/wiki/Comparison_of_Microsoft_Windows_versions |
| 146 | # https://en.wikipedia.org/wiki/Windows_NT#Releases |
| 147 | versions = { |
| 148 | "NT": ("4.0", (6, 5, 4, 3, 2, 1)), |
| 149 | "2000": ("5.0", (4, 3, 2, 1)), |
| 150 | "XP": ("5.1", (3, 2, 1)), |
| 151 | "2003": ("5.2", (2, 1)), |
| 152 | "Vista or 2008": ("6.0", (2, 1)), |
| 153 | "7 or 2008 R2": ("6.1", (1, 0)), |
| 154 | "8 or 2012": ("6.2", (0,)), |
| 155 | "8.1 or 2012 R2": ("6.3", (0,)), |
| 156 | "10 or 11 or 2016 or 2019 or 2022": ("10.0", (0,)) |
| 157 | } |
| 158 | |
| 159 | # Get back-end DBMS underlying operating system version |
| 160 | for version, data in versions.items(): |
| 161 | query = "EXISTS(SELECT %s FROM %s WHERE %s " % (self.tblField, self.fileTblName, self.tblField) |
| 162 | query += "LIKE '%Windows NT " + data[0] + "%')" |
| 163 | result = inject.checkBooleanExpression(query) |
| 164 | |
| 165 | if result: |
| 166 | Backend.setOsVersion(version) |
| 167 | infoMsg += " %s" % Backend.getOsVersion() |
| 168 | break |
| 169 | |
| 170 | if not Backend.getOsVersion(): |
| 171 | Backend.setOsVersion("2003") |
| 172 | Backend.setOsServicePack(2) |
| 173 | |
| 174 | warnMsg = "unable to fingerprint the underlying operating " |
| 175 | warnMsg += "system version, assuming it is Windows " |
| 176 | warnMsg += "%s Service Pack %d" % (Backend.getOsVersion(), Backend.getOsServicePack()) |
| 177 | logger.warning(warnMsg) |
| 178 | |
| 179 | self.cleanup(onlyFileTbl=True) |
| 180 | |
| 181 | return |
| 182 | |
| 183 | # Get back-end DBMS underlying operating system service pack |
nothing calls this directly
no test coverage detected