def getTableDefinition(self, sFile, sNameOfTable): doc = self.getDatabaseDescription(sFile) self.out( doc.toxml() ) cyRootNode = self.getRootNode(doc) cyTableNode = self.getTable(cyRootNode[0], "table", sNameOfTable) table = cyr_table.cyr_table() table.setName(sNameOfTable) table.setSpecials(self.getTableSpecification(cyTableNode, "specials") ) self.out("searching Subtable") subtable = re.search(r'inherits.*\((.*?)\)', str(table.getSpecials()), re.IGNORECASE) if subtable: sNameOfSubtable = subtable.group(1) self.out('----------------------------------Subtable found-----------------------------------------------') self.out('Subtable -> ' + str(subtable)) self.out('Subtable -> ' + subtable.group(0)) self.out('Subtable -> ' + subtable.group(1)) subTable = self.loadTable(sNameOfSubtable) xColumns = subTable.getColumns() for i in xColumns: table.addColumn(i) table.nameOfColumns.append(i.getName()) iNr = self.getNumberOfFields(cyTableNode) self.out("Number of Columns %i " + `iNr` ) iCol = 0 while (iCol < iNr): xmlCol = self.getColumnAt(cyTableNode,iCol) column = cyr_column.cyr_column() column.setName(self.getColumnSpecification(xmlCol, "name") ) self.out("column-name = " + column.getName() ) table.nameOfColumns.append(column.getName()) column.setType(self.getColumnSpecification(xmlCol, "type") ) sSize = string.strip(self.getColumnSpecification(xmlCol, "size")) if sSize: column.setSizeOfDatafield(string.strip(self.getColumnSpecification(xmlCol, "size")) ) else: column.setSizeOfDatafield('18') column.setAllowNull(string.atoi(self.getColumnSpecification(xmlCol, "notnull")) ) column.setPrimaryKey(string.atoi(self.getColumnSpecification(xmlCol, "pkey")) ) column.setDefaultValue(self.getColumnSpecification(xmlCol, "default") ) table.addColumn(column) iCol += 1 return table
def __init__(self): ## logging.basicConfig() ## self.log = logging.getLogger("cyr_table") ## self.log.setLevel(logging.DEBUG) ## self.log.info("cyr_table startet") self.Adabas = 1 self.mSql = 2 self.Mysql = 3 self.Sybase = 4 self.Interbase = 5 self.Oracle = 6 self.Informix = 7 self.Microsoft = 8 self.nameOfColumns = [] self.Columns = [] self.oneColumn = cyr_column.cyr_column();