Spanish [SOLUCIONADO] Ejecución inestable

vbmundo

Well-Known Member
Licensed User
Estimados,

He mejorado mi movil, ahora tengo un gama media con Lolly Pop y un rendimiento increible.

Pero me está pasando algo inexplicable por donde se lo mire.

En diferentes rutinas, donde, por ejemplo, en una debo llenar un ListView con un Icono y textos, cuando corro sin detener la APP, me pasa que confunde el Icono y mete otro..

Ya se.. antes de que digan que estoy loco.. les explico.

Corro la misma rutina, enlazando a mi otro movil ( el anterior de gama baja) y todo va bien.. corro lo mismo en el Lolly Pop , pero metiendo previamente un punto de break.. y doy F8 para ir paso a paso.. y todo perfecto..

Si detengo la ejecución y voy lento funciona perfecto.

Si lo corro sin control, me vuelve a poner el Icono Verde... (en lugar del Amarillo - Correcto)

Y no solo me ha pasado con esto.. me ha pasado con asignaciones de texto a otras variables.. etc..

La rutina que me falla (por ejemplo) es esta.

B4X:
    For i = 0 To data.Size-1
         m=data.Get(i)
   
        MySQL.ListadeCampos.Add(m.Get("COLUMN_NAME"))
        If m.Get("INDEX_NAME")<>Null Then
            If m.Get("NON_UNIQUE")=0 Then
               If m.Get("INDEX_NAME")="PRIMARY" Then
                       ListaCampos.AddTwoLinesAndBitmap2(m.Get("COLUMN_NAME"), m.Get("COLUMN_TYPE"),LoadBitmap(File.DirAssets,"llave-amarilla.png"),m.Get("COLUMN_NAME"))
                  Log("Clave Primaria " & m.Get("COLUMN_NAME"))
               Else
                       ListaCampos.AddTwoLinesAndBitmap2(m.Get("COLUMN_NAME"), m.Get("COLUMN_TYPE"),LoadBitmap(File.DirAssets,"llave-roja.png"),m.Get("COLUMN_NAME"))
                  Log("Clave Unica " & m.Get("COLUMN_NAME"))
               End If
            Else
                  ListaCampos.AddTwoLinesAndBitmap2(m.Get("COLUMN_NAME"), m.Get("COLUMN_TYPE"),LoadBitmap(File.DirAssets,"llave-verde.png"),m.Get("COLUMN_NAME"))
               Log("Clave Comun " & m.Get("COLUMN_NAME"))
            End If    
        Else
            ListaCampos.AddTwoLinesAndBitmap2(m.Get("COLUMN_NAME"), m.Get("COLUMN_TYPE"),LoadBitmap(File.DirAssets,"fields.jpg"),m.Get("COLUMN_NAME"))
        End If
        If Defa="auto_increment" Then MySQL.TieneAutoIncrement=True
    Next


Se los explico.

Esta rutina analiza un DATA (list) que trae la info de la tabla que guarda los campos INDICE de una tabla...

Y analiza si el INDICE es UNICO y PRIMARY, entonces muestra la llave Amarilla
Si el INDICE es UNICO pero Secundario, muestra la llave Roja
y si solo es un simple INDICE con repeticiones, muestra la llave Verde.

Cuando lo corro con BREAKS.. muestra correctamente la llave Amarilla.

Pero si lo corro sin freno.. me muestra la llave VERDE.

Puse (como pueden ver) un LOG y curiosamente, muestra los valores correctos en el LOG; como que ingresa en el IF correspondiente,, pero entonces porque si le hemos dicho que muestre el ICONO amarillo, termina mostrando el Verde ?

No me lo explico.. realmente.

Gracias
 

dar2o3

Active Member
Licensed User
Longtime User
No es un problema de velocidad de ejecución!!! en muchos de los ejemplos de listview se crea un "bucle" de mas de 100 iteraciones (no hay nada mas rápido en tiempo de ejecución) y funciona correctamente, debes de tener algún problema en otra parte del código.
 

vbmundo

Well-Known Member
Licensed User
Pero amigo.. el mismo código sin tocarle ni 1 punto ni 1 coma, corriendo de 2 formas diferentes (veloz y lento) con resultados diferentes..

No se que mirar ya.
 

rscheel

Well-Known Member
Licensed User
Longtime User
Pero amigo.. el mismo código sin tocarle ni 1 punto ni 1 coma, corriendo de 2 formas diferentes (veloz y lento) con resultados diferentes..

No se que mirar ya.

Probaste colocar el NULL de la siguiente manera?

B4X:
 If m.Get("INDEX_NAME")<>"null" Then

Sinceramente creo de que es un problema de la implementacion de tu código, ya que yo uso el listview con carga de imagen y varios if dentro del for y funciona perfectamente.
 

vbmundo

Well-Known Member
Licensed User
Hice las pruebas.. con "NULL" no funciona.. lo toma como un literal...

Ahora corro y va bien, pero no me da seguridad.

Seguiré probando.. gracias
 

rscheel

Well-Known Member
Licensed User
Longtime User
Hice las pruebas.. con "NULL" no funciona.. lo toma como un literal...

Ahora corro y va bien, pero no me da seguridad.

Seguiré probando.. gracias
Estimado probo con null con minúscula tal como le coloque el código?
 
Top