def ejecutar(insertinto, ts, consola, exceptions):
    if (ts.validar_sim('usedatabase1234') == 1):
        bdactual = ts.buscar_sim('usedatabase1234')
        BD = ts.buscar_sim(bdactual.valor)
        entornoBD = BD.Entorno
        dataainsertar = []
        if (entornoBD.validar_sim(insertinto.id) == 1):
            simbolo_tabla = entornoBD.buscar_sim(insertinto.id)
            entornoTabla = simbolo_tabla.Entorno
            indices_a_buscar = []
            if (insertinto.caso == 1):
                print('caso1')
                for data in insertinto.listaId:
                    contador = 1
                    for columna in entornoTabla.simbolos:
                        if (data.id == columna):
                            indices_a_buscar.append(contador)
                            break
                        contador = (contador + 1)
                print(indices_a_buscar)
                lista = entornoTabla.simbolos
                contador = 1
                for columna in lista:
                    if (not (contador in indices_a_buscar)):
                        print('((((((((((((((((((((((((((((((((((((((')
                        if ('NOTNULL' in lista.get(columna).valor):
                            global todoBien
                            todoBien = False
                            consola.append(f'Error esta columna no puede ser nula {columna}')
                            break
                        else:
                            todoBien = True
                    contador = (contador + 1)
                for data in insertinto.listaId:
                    if (entornoTabla.validar_sim(data.id) == (- 1)):
                        consola.append(f'Error no hay coincidencia de ids en {data.id}')
                        todoBien = False
                for data in insertinto.values:
                    print('val :', data.valor)
                if todoBien:
                    contadoraux = 1
                    i = 0
                    todobien = True
                    for data in entornoTabla.simbolos:
                        if (contadoraux in indices_a_buscar):
                            todobien = comprobar_tipos(dataainsertar, i, insertinto.values, data, entornoTabla.simbolos, entornoTabla, consola, exceptions, BD, simbolo_tabla, ts)
                            i = (i + 1)
                        else:
                            dataainsertar.append(str(None))
                        if (not todobien):
                            consola.append('No se insertaron los datos, columnas inconsistentes')
                            todobien = False
                            break
                        contadoraux = (contadoraux + 1)
                    if todobien:
                        insert(BD.id, simbolo_tabla.id, dataainsertar)
                        consola.append(f'''insert en la tabla {insertinto.id}, exitoso
''')
                    else:
                        consola.append(f'Campos insconsistentes')
                    consola.append(f'''insert en la tabla {insertinto.id}, exitoso
''')
                else:
                    consola.append(f'datos dectectados como no nulos')
                todoBien = True
            else:
                print('caso 2')
                if (len(insertinto.values) == len(entornoTabla.simbolos)):
                    i = 0
                    todobien = True
                    for data in entornoTabla.simbolos:
                        todobien = comprobar_tipos(dataainsertar, i, insertinto.values, data, entornoTabla.simbolos, entornoTabla, consola, exceptions, BD, simbolo_tabla, ts)
                        if (not todobien):
                            consola.append('No se insertaron los datos, columnas inconsistentes')
                            todobien = False
                            break
                        i = (i + 1)
                    if todobien:
                        insert(BD.id, simbolo_tabla.id, dataainsertar)
                        consola.append(f'''insert en la tabla {insertinto.id}, exitoso
''')
                    else:
                        consola.append(f'Campos insconsistentes')
                else:
                    consola.append(f'La cantidad de columnas esperadas es de {len(entornoTabla.simbolos)} para insersar en tabla {insertinto.id}')
                    exceptions.append(f'Error semantico-22023-invalid_parameter_value -{insertinto.fila}-{insertinto.columna}')
        else:
            consola.append(f'42P01	undefined_table, no existe la tabla {insertinto.id}')
            exceptions.append(f'Error semantico-42P01- 42P01	undefined_table, no existe la tabla {insertinto.id}-fila-columna')
    else:
        consola.append('42P12\tinvalid_database_definition, Error al insertar\n')
        consola.append('22005\terror_in_assignment, No se ha seleccionado una BD\n')
        exceptions.append('Error semantico-22005\terror_in_assignment-No se ha seleccionado DB-fila-columna')
def ejecutar(insertinto, ts, consola, exceptions):
    if (ts.validar_sim('usedatabase1234') == 1):
        bdactual = ts.buscar_sim('usedatabase1234')
        BD = ts.buscar_sim(bdactual.valor)
        entornoBD = BD.Entorno
        dataainsertar = []
        if (entornoBD.validar_sim(insertinto.id) == 1):
            simbolo_tabla = entornoBD.buscar_sim(insertinto.id)
            entornoTabla = simbolo_tabla.Entorno
            indices_a_buscar = []
            if (insertinto.caso == 1):
                print('caso1')
                for data in insertinto.listaId:
                    contador = 1
                    for columna in entornoTabla.simbolos:
                        if (data.id == columna):
                            indices_a_buscar.append(contador)
                            break
                        contador = (contador + 1)
                print(indices_a_buscar)
                lista = entornoTabla.simbolos
                contador = 1
                for columna in lista:
                    if (not (contador in indices_a_buscar)):
                        print('((((((((((((((((((((((((((((((((((((((')
                        if ('NOTNULL' in lista.get(columna).valor):
                            global todoBien
                            todoBien = False
                            consola.append(f'Error esta columna no puede ser nula {columna}')
                            break
                        else:
                            todoBien = True
                    contador = (contador + 1)
                for data in insertinto.listaId:
                    if (entornoTabla.validar_sim(data.id) == (- 1)):
                        consola.append(f'Error no hay coincidencia de ids en {data.id}')
                        todoBien = False
                for data in insertinto.values:
                    print('val :', data.valor)
                if todoBien:
                    contadoraux = 1
                    i = 0
                    todobien = True
                    for data in entornoTabla.simbolos:
                        if (contadoraux in indices_a_buscar):
                            todobien = comprobar_tipos(dataainsertar, i, insertinto.values, data, entornoTabla.simbolos, entornoTabla, consola, exceptions, BD, simbolo_tabla, ts)
                            i = (i + 1)
                        else:
                            dataainsertar.append(str(None))
                        if (not todobien):
                            consola.append('No se insertaron los datos, columnas inconsistentes')
                            todobien = False
                            break
                        contadoraux = (contadoraux + 1)
                    if todobien:
                        insert(BD.id, simbolo_tabla.id, dataainsertar)
                        consola.append(f'insert en la tabla {insertinto.id}, exitoso
')
                    else:
                        consola.append(f'Campos insconsistentes')
                    consola.append(f'insert en la tabla {insertinto.id}, exitoso
')
                else:
                    consola.append(f'datos dectectados como no nulos')
                todoBien = True
            else:
                print('caso 2')
                if (len(insertinto.values) == len(entornoTabla.simbolos)):
                    i = 0
                    todobien = True
                    for data in entornoTabla.simbolos:
                        todobien = comprobar_tipos(dataainsertar, i, insertinto.values, data, entornoTabla.simbolos, entornoTabla, consola, exceptions, BD, simbolo_tabla, ts)
                        if (not todobien):
                            consola.append('No se insertaron los datos, columnas inconsistentes')
                            todobien = False
                            break
                        i = (i + 1)
                    if todobien:
                        insert(BD.id, simbolo_tabla.id, dataainsertar)
                        consola.append(f'insert en la tabla {insertinto.id}, exitoso
')
                    else:
                        consola.append(f'Campos insconsistentes')
                else:
                    consola.append(f'La cantidad de columnas esperadas es de {len(entornoTabla.simbolos)} para insersar en tabla {insertinto.id}')
                    exceptions.append(f'Error semantico-22023-invalid_parameter_value -{insertinto.fila}-{insertinto.columna}')
        else:
            consola.append(f'42P01	undefined_table, no existe la tabla {insertinto.id}')
            exceptions.append(f'Error semantico-42P01- 42P01	undefined_table, no existe la tabla {insertinto.id}-fila-columna')
    else:
        consola.append('42P12\tinvalid_database_definition, Error al insertar\n')
        consola.append('22005\terror_in_assignment, No se ha seleccionado una BD\n')
        exceptions.append('Error semantico-22005\terror_in_assignment-No se ha seleccionado DB-fila-columna')