def cargar(self): # Cargar desde el esquema try: with open(self.schema_file) as esquema: config = map(lambda x : x[:-1], esquema.readlines()) # Cargar la cantidad de tablas específicada self.tablas = [] i = 1 for tabs in range(self.getCantidadTablas()): # Crear tabla tab = Tabla(config[i], self) i += 2 # Registros tab.setCantidadRegistros(int(config[i])) i += 2 # Columnas for cols in xrange(int(config[i])): i += 1 nombre = config[i] i += 1 l = config[i].split('\t') tipo = l[0] tamanio = None if len(l) < 2 else l[1] tab.agregar_columna(nombre, tipo, valor=tamanio) # Cada restricción i += 2 for rests in xrange(int(config[i])): i += 1 if config[i] == 'PRIMARY KEY': i += 1 nombre = config[i] i += 1 keys = config[i].split(', ') tab.agregar_clave_primaria(nombre, keys) elif config[i] == 'FOREIGN KEY': i += 1 nombre = config[i] i += 1 local = config[i].split(', ') i += 1 tabForanea = config[i] i += 1 foranea = config[i].split(', ') tab.agregar_clave_foranea(nombre, local, tabForanea, foranea) else: i += 1 nombre = config[i] i += 1 exp = Parser.buildExp().parse(config[i])[0] tab.agregar_chequeo(nombre, exp) # Cada dependiente i += 2 dependientes = config[i].split(', ') if config[i].strip() != '' else [] tab.setDependientes(dependientes) # Cargar registros de la tabla tab.cargar_registros() # Agregar tabla self.tablas.append(tab) # Ir por la siguiente i += 2 except IOError, msg: pass
def cargar(self): # Cargar desde el esquema try: with open(self.schema_file) as esquema: config = map(lambda x: x[:-1], esquema.readlines()) # Cargar la cantidad de tablas específicada self.tablas = [] i = 1 for tabs in range(self.getCantidadTablas()): # Crear tabla tab = Tabla(config[i], self) i += 2 # Registros tab.setCantidadRegistros(int(config[i])) i += 2 # Columnas for cols in xrange(int(config[i])): i += 1 nombre = config[i] i += 1 l = config[i].split('\t') tipo = l[0] tamanio = None if len(l) < 2 else l[1] tab.agregar_columna(nombre, tipo, valor=tamanio) # Cada restricción i += 2 for rests in xrange(int(config[i])): i += 1 if config[i] == 'PRIMARY KEY': i += 1 nombre = config[i] i += 1 keys = config[i].split(', ') tab.agregar_clave_primaria(nombre, keys) elif config[i] == 'FOREIGN KEY': i += 1 nombre = config[i] i += 1 local = config[i].split(', ') i += 1 tabForanea = config[i] i += 1 foranea = config[i].split(', ') tab.agregar_clave_foranea(nombre, local, tabForanea, foranea) else: i += 1 nombre = config[i] i += 1 exp = Parser.buildExp().parse(config[i])[0] tab.agregar_chequeo(nombre, exp) # Cada dependiente i += 2 dependientes = config[i].split( ', ') if config[i].strip() != '' else [] tab.setDependientes(dependientes) # Cargar registros de la tabla tab.cargar_registros() # Agregar tabla self.tablas.append(tab) # Ir por la siguiente i += 2 except IOError, msg: pass