コード例 #1
0
ファイル: BaseDeDatos.py プロジェクト: byoms23/byDBMS
 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            
コード例 #2
0
ファイル: BaseDeDatos.py プロジェクト: byoms23/byDBMS
    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