def comprobar_tipos(datainsertar, index, lista_valores, campo, lista_tabla, ts, Consola, exception, bd, tabla, globall):
    print('estoy aqui !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
    todobien = False
    datafinal = None
    if isinstance(lista_valores[index], Instruccion):
        datafinal = Expresion.Resolver(lista_valores[index], ts, Consola, exception)
        datainsertar.append(datafinal)
    else:
        datafinal = lista_valores[index].valor
        datainsertar.append(datafinal)
    print(datafinal)
    if (isinstance(datafinal, int) and ('INTEGER' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
        todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
    elif ((isinstance(datafinal, float) and ('DOUBLE' in str(lista_tabla.get(campo).tipo).upper())) or ('DECIMAL' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
        todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
    elif ((str(datafinal).upper() == 'TRUE') or ((str(datafinal).upper() == 'FALSE') and ('BOOLEAN' in str(lista_tabla.get(campo).tipo).upper()))):
        todobien = True
        todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
        todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
    elif (isinstance(datafinal, str) and ('TEXT' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
        todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
    elif ((isinstance(str(datafinal), str) and ('VARCHAR' in str(lista_tabla.get(campo).tipo).upper())) or ('CHARACTERVARYING' in str(lista_tabla.get(campo).tipo).upper()) or ('CHARACTER' in str(lista_tabla.get(campo).tipo).upper()) or ('CHAR' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        cantidad = str(lista_tabla.get(campo).tipo).split('-')[1]
        if (len(str(datafinal)) <= int(cantidad)):
            todobien = True
            todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, str(datafinal), lista_tabla.get(campo).id, ts, Consola, exception)
            todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
        else:
            todobien = False
    elif (isinstance(datafinal, float) and ('MONEY' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
        todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
    elif (isinstance(datafinal, int) and ('MONEY' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        try:
            todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
            todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
        except:
            todobien = False
    elif ('DATE' in str(lista_tabla.get(campo).tipo).upper()):
        try:
            todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
            todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
        except:
            print('error de tipo')
            todobien = False
    else:
        try:
            print('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5')
            print(lista_tabla.get(campo).tipo)
            for data in globall.simbolos:
                print(':: ', data)
            if (globall.validar_sim(str(lista_tabla.get(campo).tipo).lower()) == 1):
                print('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$4')
                for data in ts.simbolos:
                    print(';;; ', data)
                simbolo_enumo = globall.buscar_sim(str(lista_tabla.get(campo).tipo).lower())
                if (datafinal in simbolo_enumo.valor):
                    todobien = True
                    Consola.append('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11')
            else:
                print('no encotrado')
        except:
            todobien = False
    return todobien
def comprobar_tipos(datainsertar, index, lista_valores, campo, lista_tabla, ts, Consola, exception, bd, tabla, globall):
    print('estoy aqui !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!')
    todobien = False
    datafinal = None
    if isinstance(lista_valores[index], Instruccion):
        datafinal = Expresion.Resolver(lista_valores[index], ts, Consola, exception)
        datainsertar.append(datafinal)
    else:
        datafinal = lista_valores[index].valor
        datainsertar.append(datafinal)
    print(datafinal)
    if (isinstance(datafinal, int) and ('INTEGER' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
        todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
    elif ((isinstance(datafinal, float) and ('DOUBLE' in str(lista_tabla.get(campo).tipo).upper())) or ('DECIMAL' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
        todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
    elif ((str(datafinal).upper() == 'TRUE') or ((str(datafinal).upper() == 'FALSE') and ('BOOLEAN' in str(lista_tabla.get(campo).tipo).upper()))):
        todobien = True
        todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
        todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
    elif (isinstance(datafinal, str) and ('TEXT' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
        todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
    elif ((isinstance(str(datafinal), str) and ('VARCHAR' in str(lista_tabla.get(campo).tipo).upper())) or ('CHARACTERVARYING' in str(lista_tabla.get(campo).tipo).upper()) or ('CHARACTER' in str(lista_tabla.get(campo).tipo).upper()) or ('CHAR' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        cantidad = str(lista_tabla.get(campo).tipo).split('-')[1]
        if (len(str(datafinal)) <= int(cantidad)):
            todobien = True
            todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, str(datafinal), lista_tabla.get(campo).id, ts, Consola, exception)
            todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
        else:
            todobien = False
    elif (isinstance(datafinal, float) and ('MONEY' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
        todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
    elif (isinstance(datafinal, int) and ('MONEY' in str(lista_tabla.get(campo).tipo).upper())):
        todobien = True
        try:
            todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
            todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
        except:
            todobien = False
    elif ('DATE' in str(lista_tabla.get(campo).tipo).upper()):
        try:
            todobien = comprobarcheck(lista_tabla.get(campo).Entorno, 1, datafinal, lista_tabla.get(campo).id, ts, Consola, exception)
            todobien = comprobar_caracteristicas(lista_tabla.get(campo).valor, datafinal, Consola, exception, bd, tabla, index)
        except:
            print('error de tipo')
            todobien = False
    else:
        try:
            print('%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%%5')
            print(lista_tabla.get(campo).tipo)
            for data in globall.simbolos:
                print(':: ', data)
            if (globall.validar_sim(str(lista_tabla.get(campo).tipo).lower()) == 1):
                print('$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$$4')
                for data in ts.simbolos:
                    print(';;; ', data)
                simbolo_enumo = globall.buscar_sim(str(lista_tabla.get(campo).tipo).lower())
                if (datafinal in simbolo_enumo.valor):
                    todobien = True
                    Consola.append('!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!11')
            else:
                print('no encotrado')
        except:
            todobien = False
    return todobien