Beispiel #1
0
def alterDatabaseMode(database: str, mode: str):
    ModeDB, indexDB = exist_Alter(database)
    mode_list.pop(indexDB)
    createDatabase(database, mode, ModeDB.get_encondig())
    if ModeDB:

        oldMode = ModeDB.get_mode()
        if oldMode.lower().strip() == "avl":
            tables = avl.showTables(database)
            for tabla in tables:
                listaDatos = get_Data(database, tabla, oldMode)
                numberColumns = len(listaDatos[0])
                insertAlter(database, tabla, numberColumns, mode, listaDatos)
            avl.dropDatabase(database)
        elif oldMode.lower().strip() == "b":
            tables = b.showTables(database)
            for tabla in tables:
                listaDatos = get_Data(database, tabla, oldMode)
                numberColumns = len(listaDatos[0])
                insertAlter(database, tabla, numberColumns, mode, listaDatos)
            b.dropDatabase(database)
        elif oldMode.lower().strip() == "bPlus".lower():
            tables = bPlus.showTables(database)
            for tabla in tables:
                listaDatos = get_Data(database, tabla, oldMode)
                numberColumns = len(listaDatos[0])
                insertAlter(database, tabla, numberColumns, mode, listaDatos)
            bPlus.dropDatabase(database)
        elif oldMode.lower().strip() == "dict":
            tables = diccionario.showTables(database)
            for tabla in tables:
                listaDatos = get_Data(database, tabla, oldMode)
                numberColumns = len(listaDatos[0])
                insertAlter(database, tabla, numberColumns, mode, listaDatos)
            diccionario.dropDatabase(database)
        elif oldMode.lower().strip() == "isam":
            tables = isam.showTables(database)
            for tabla in tables:
                listaDatos = get_Data(database, tabla, oldMode)
                numberColumns = len(listaDatos[0])
                insertAlter(database, tabla, numberColumns, mode, listaDatos)
            isam.dropDatabase(database)
        elif oldMode.lower().strip() == "hash":
            tables = hash.showTables(database)
            for tabla in tables:
                listaDatos = get_Data(database, tabla, oldMode)
                numberColumns = len(listaDatos[0])
                insertAlter(database, tabla, numberColumns, mode, listaDatos)
            hash.dropDatabase(database)
        elif oldMode.lower().strip() == "json":
            tables = json.showTables(database)
            for tabla in tables:
                listaDatos = get_Data(database, tabla, oldMode)
                numberColumns = len(listaDatos[0])
                insertAlter(database, tabla, numberColumns, mode, listaDatos)
            json.dropDatabase(database)
Beispiel #2
0
def dropDatabase(database: str) -> int: 
    try:
        retorno = 1
        bd = __buscarLlaveBaseDato(database)
        if bd is not None:
            modoDB = bd[0]
            if modoDB == "avl":
                retorno = avl.dropDatabase(database)
            elif modoDB == "b":
                retorno = b.dropDatabase(database)
            elif modoDB == "bplus":
                retorno = bPlus.dropDatabase(database)
            elif modoDB == "dict":
                retorno = dic.dropDatabase(database)
            elif modoDB == "isam":
                retorno = isam.dropDatabase(database)
            elif modoDB == "json":
                retorno = json.dropDatabase(database)
            elif modoDB == "hash":
                retorno = hash.dropDatabase(database)
            
            if retorno == 0:
                del generalDict[database]
                ser("data/info/datos.bin", generalDict)
            return retorno
        else:
            return 2   
    except Exception:
        return 1
Beispiel #3
0
def dropDatabase(database: str) -> int:
    if re.search(DB_NAME_PATTERN, database):
        dbs = databases.find_all(database)
        if dbs == []:
            return 2
        for db in dbs:
            if db.mode == "avl":
                code = avlMode.dropDatabase(database)
            elif db.mode == "b":
                code = BMode.dropDatabase(database)
            elif db.mode == "bplus":
                code = BPlusMode.dropDatabase(database)
            elif db.mode == "dict":
                code = DictMode.dropDatabase(database)
            elif db.mode == "isam":
                code = ISAMMode.dropDatabase(database)
            elif db.mode == "json":
                code = jsonMode.dropDatabase(database)
            elif db.mode == "hash":
                code = HashMode.dropDatabase(database)
            if code == 0:
                databases.delete(db.name)
                for x in range(5):
                    try:
                        Serializable.commit(databases, "lista_bases_de_datos")
                        return 0
                    except:
                        continue
            return 1
    else:
        return 1
Beispiel #4
0
def dropDatabase(database: str) -> int:
    """Deletes a database (including all of its content)

        Parameters:\n
            database (str): name of the database

        Returns:\n
            0: successful operation
            1: an error ocurred
            2: non-existent database
    """

    bd = _Buscar(database)

    if bd:

        mode = bd[1]

        val = -1

        if mode == "avl":
            val = avl.dropDatabase(database)

        elif mode == "b":
            val = b.dropDatabase(database)

        elif mode == "bplus":
            val = bplus.dropDatabase(database)

        elif mode == "hash":
            val = hash.dropDatabase(database)

        elif mode == "isam":
            val = isam.dropDatabase(database)

        elif mode == "json":
            val = json.dropDatabase(database)

        elif mode == "dict":
            val = dict.dropDatabase(database)

        if val == 0:
            lista_general.remove(bd)
            serealizar.commit(lista_general, "cache", _main_path)

        return val

    else:
        return 2
Beispiel #5
0
def dropDatabase(database: str) -> int:
    """Deletes a database (including all of its content)

        Parameters:\n
            database (str): name of the database

        Returns:\n
            0: successful operation
            1: an error ocurred
            2: non-existent database
    """

    bd = _database(database)

    if bd:

        mode = bd["modo"]

        val = -1

        if mode == "avl":
            val = avl.dropDatabase(database)

        elif mode == "b":
            val = b.dropDatabase(database)

        elif mode == "bplus":
            val = bplus.dropDatabase(database)

        elif mode == "hash":
            val = hash.dropDatabase(database)

        elif mode == "isam":
            val = isam.dropDatabase(database)

        elif mode == "json":
            val = json.dropDatabase(database)

        elif mode == "dict":
            val = dict.dropDatabase(database)

        if val == 0:
            _data.remove(bd)
            _Guardar()

        return val

    else:
        return 2
Beispiel #6
0
def dropDatabase(name_db):
    ModeDB, indexDB = exist_Alter(name_db)
    if ModeDB:
        mode = ModeDB.get_mode()
        if mode.lower().strip() == "avl":
            return avl.dropDatabase(name_db)
        elif mode.lower().strip() == "b":
            return b.dropDatabase(name_db)
        elif mode.lower().strip() == "bPlus".lower():
            return bPlus.dropDatabase(name_db)
        elif mode.lower().strip() == "dict":
            return diccionario.dropDatabase(name_db)
        elif mode.lower().strip() == "hash":
            return hash.dropDatabase(name_db)
        elif mode.lower().strip() == "isam":
            return isam.dropDatabase(name_db)
        elif mode.lower().strip() == "json":
            return json.dropDatabase(name_db)
Beispiel #7
0
def dropDatabase(database):
    if searchInMode(database) != None:
        currentMode = searchInMode(database)
        if currentMode == 'avl':
            return avl.dropDatabase(database)
        elif currentMode == 'b':
            return b.dropDatabase(database)
        elif currentMode == 'bplus':
            return bplus.dropDatabase(database)
        elif currentMode == 'dict':
            return DM.dropDatabase(database)
        elif currentMode == 'isam':
            return isam.dropDatabase(database)
        elif currentMode == 'json':
            return j.dropDatabase(database)
        elif currentMode == 'hash':
            return Hash.dropDatabase(database)
    else:
        return 2
Beispiel #8
0
def dropDatabase(database):
    mode = None
    for i in range(7):
        mode = obtenerBase(database, i)
        if mode == []:
            continue
        else:
            if mode == 0:
                mode = "avl"
            elif mode == 1:
                mode = "b"
            elif mode == 2:
                mode = "bplus"
            elif mode == 3:
                mode = "dict"
            elif mode == 4:
                mode = "isam"
            elif mode == 5:
                mode = "json"
            elif mode == 6:
                mode = "hash"
            break
    if mode == None:
        return 2
    if mode == "avl":
        # Grupo 16
        val = avl_mode.dropDatabase(database)
    elif mode == "b":
        # Grupo 17
        val = b_mode.dropDatabase(database)
    elif mode == "bplus":
        # Grupo 18
        val = bplus_mode.dropDatabase(database)
    elif mode == "dict":
        # Auxiliar
        val = dict_mode.dropDatabase(database)
    elif mode == "isam":
        # Grupo 14
        val = isam_mode.dropDatabase(database)
    elif mode == "json":
        # Ingeniero
        val = json_mode.dropDatabase(database)
    elif mode == "hash":
        # Grupo 15
        val = hash_mode.dropDatabase(database)
    else:
        val = 3
    if val == 0:
        global Bases
        global Tablas
        try:
            # Leemos el archivo binario de los registros de bases de datos
            fichero_lectura = open("BD_register", "rb")
            Bases = pickle.load(fichero_lectura)
            Bases.pop(database)
            # Actualizamos el archivo binario de los registros de bases de datos
            fichero_escritura = open("BD_register", "wb")
            pickle.dump(Bases, fichero_escritura)
            fichero_escritura.close()
            try:
                # Leemos el archivo binario de los registros de tablas
                fichero_lectura = open("TB_register", "rb")
                Tablas = pickle.load(fichero_lectura)
                try:
                    Tablas.pop(database)
                except:
                    """"""
                # Actualizamos el archivo binario de los registros de tablas
                fichero_escritura = open("TB_register", "wb")
                pickle.dump(Tablas, fichero_escritura)
                fichero_escritura.close()
            except:
                try:
                    Tablas.pop(database)
                except:
                    """"""
                # Actualizamos el archivo binario de los registros de tablas
                fichero_escritura = open("TB_register", "wb")
                pickle.dump(Tablas, fichero_escritura)
                fichero_escritura.close()
        except:
            Bases.pop(database)
            # Actualizamos el archivo binario de los registros de bases de datos
            fichero_escritura = open("BD_register", "wb")
            pickle.dump(Bases, fichero_escritura)
            fichero_escritura.close()
            try:
                # Leemos el archivo binario de los registros de tablas
                fichero_lectura = open("TB_register", "rb")
                Tablas = pickle.load(fichero_lectura)
                try:
                    Tablas.pop(database)
                except:
                    """"""
                # Actualizamos el archivo binario de los registros de tablas
                fichero_escritura = open("TB_register", "wb")
                pickle.dump(Tablas, fichero_escritura)
                fichero_escritura.close()
            except:
                try:
                    Tablas.pop(database)
                except:
                    """"""
                # Actualizamos el archivo binario de los registros de tablas
                fichero_escritura = open("TB_register", "wb")
                pickle.dump(Tablas, fichero_escritura)
                fichero_escritura.close()
    return val