|
Página 1 de 1
|
Problema Con ListBox En Gambas 3 (solucionado)
Autor |
Mensaje |
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Problema Con ListBox En Gambas 3 (solucionado)
Migrando código de gambas 2 al 3 me encuentro que al intentar asignar el valor List, se cuelga la aplicación, es decir. No hace nada, no sigue, no levanta errores el ide. Se cuelga como si fuese de windows millenium. Si utilizo el método Add del control, como que tarda la vida para menos de 4000 registros. Estoy probando con sqlite3, pero el motor de datos no es el problema.
El código es más o menos lo siguiente:
Dim aops As New String[]
Dim r As Result
Inc Application.Busy
r = miconexion.consultar("select distinct micampo from mitabla")
milistbox.clear
aops = New String[]
r = thegrid.rslt
While r.Available
milistbox.Add(r!micampo) 'esto tarda la vida entera
'aops.Add(r!micampo) 'esto es rapidisimo
r.MoveNext
Wend
'milistobx.list = aops 'esto, que era rapidísimo en conexión con la línea comentada arriba, cuelga la aplicacion
milistbox.SetFocus
Dec Application.Busy
Catch
Error.Raise(Error.Text)
End
He perdido una tarde en el tema y no encuentro que el control haya sido modificado en sí mismo... ¿o estoy equivocado?
última edición por shordi el Domingo, 13 Enero 2013, 19:57; editado 2 veces
|
#1 Domingo, 13 Enero 2013, 07:22 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Problema Con ListBox En Gambas 3
Hola
En el ejemplo siguiente el resultado es inmediato para 10000 registros. He probado con gb.gtk y con gb.qt4 y no hay diferencia:
Es decir, parece que asignar un array de string a la propiedad .List de un listbox no es el problema...
Esta es la información del sistema, por si sirve de ayuda (se obtiene desde el menú de gambas "?" a la derecha del todo)
[System]
OperatingSystem=Linux
Kernel=3.2.0-23-generic
Architecture=x86_64
Distribution=Linux Mint 13 Maya
Desktop=GNOME
Theme=QGtk
Language=es_ES.UTF-8
Memory=16034M
[Libraries]
Qt4=libQtCore.so.4.8.1
GStreamer=libgstreamer-0.10.so.0.30.0
GTK+=libgtk-x11-2.0.so.0.2400.10
Poppler=libpoppler.so.19.0.0
SDL=libSDL-1.2.so.0.11.3
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#2 Domingo, 13 Enero 2013, 09:43 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Problema Con ListBox En Gambas 3
Re-reviso el código y te cuento.
|
#3 Domingo, 13 Enero 2013, 10:23 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Problema Con ListBox En Gambas 3
Estoy por rendirme y volver al viejo y querido gambas 2. Me parece que el 3 está muy verde, por lo menos en lo que a depuración de errores se refiere.
Adjunto un extracto de mi proyecto, a ver si alguien puede arrojar alguna luz.
Es un generador de consultas, le das una conexion y te lista la tabla que digas. Cuando pulsas en "Filtro Avanzado" (el embudo con una estrella) se abre un formulario para construir la consulta. Cuando pulsas ahí el botón "Seleccionar valor existente" (el de la lupa) se supone que se tiene que rellenar el listbox que hay debajo, pero, por algún misterio, se cuelga el hijoputa.
La idea de fondo es convertir las clases Xgrid y Conexion en una librería en un futuro... pero esto no es marcha, no...
Ah! la información de mi sistema:
Citar: [System]
OperatingSystem=Linux
Kernel=3.2.0-35-generic
Architecture=x86_64
Memory=3748824 kB
DistributionVendor=Ubuntu
DistributionRelease="Ubuntu 12.04.1 LTS"
Desktop=Gnome
[ gambas 2]
Version=2.23.1
Path=/usr/bin/gbx2
[ gambas 3]
Version=3.3.4
Path=/usr/bin/gbx3
[Libraries]
Qt4=libQtCore.so.4.8.1
GTK+=libgtk-x11-2.0.so.0.2400.10
Aquí podéis descargarlo
No seáis muy duros con el código, que está a medio cocer.
Saluds
|
#4 Domingo, 13 Enero 2013, 18:42 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Problema Con ListBox En Gambas 3 (solucionado)
Al final una tontuna, como siempre: Nada de GTK. Utilizar el QT4 y funciona perfecto.
Vaya mierda de pérdida de tiempo.
Seguiremos en la lucha...
|
#5 Domingo, 13 Enero 2013, 19:58 |
|
|
jguardon
Administrador
Registrado: Septiembre 2009
Mensajes: 2708
Edad: 57 Ubicación: Granada
|
Re: Problema Con ListBox En Gambas 3
Estoy por rendirme y volver al viejo y querido gambas 2. Me parece que el 3 está muy verde
Baaaahhh!! Ni hablar!
Aunque no lo he podido probar porque no adjuntas la base de datos con datos de prueba, me gustaría comentar contigo el significado de la línea 195 de fFiltro.class porque me chirría bastante:
r = hc.exec("select distinct " & comillas(campo1.text) & " from " & thegrid.tabla, True & " order by " & comillas(campo1.Text), True)
Lo primero veo que has creado una función para las comillas de las cadenas, cuando eso se puede gestionar usando los argumentos de sustitución y los comodines &1..&n.
Segundo, no entiendo los "True" después de la coma, que en realidad el método Exec los está entendiendo como argumentos de sustitución. Además luego continúa la sentencia sql, lo que por supuesto está mal bajo mi punto de vista.
Creo que por ahí puedan venir los problemas, aunque gambas no se queje (la consulta está mal, pero gambas no lo sabe porque no hay error sintáctico ni el motor sql tampoco).
Saludos
=================== Jesús Guardón
Por favor, usemos el corrector ortográfico antes de pulsar el botón "Enviar".
"uo ǝs ʇɐu pıɟıɔıן ɐdɹǝupǝɹ ɐ dɹoƃɹɐɯɐɹ, soןo ɥɐʎ bnǝ dɹodouǝɹsǝןo"
|
#6 Domingo, 13 Enero 2013, 20:04 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Problema Con ListBox En Gambas 3 (solucionado)
Esa línea es el fruto de quita-prueba-pon mil veces. En realidad en el original se usaba el método "consultar" de la calse Conexion, que tiene un segundo parámetro booleano, sobre si la consulta es segura o no (en la aplicación original donde desarrollé esa clase había ocasiones en que el usuario puede modificar una sentencia sql ) y para evitar sustos, se rechaza toda consulta que incorpore palabras "de acción" (drop, delete, etc.). Tanto copiar y pegar que la burra se fué al monte.
En realidad el código real no utiliza esa línea, utiliza la que ahora viene comentada como:
Donde no se crea un result nuevo, sino que utilizamos el que ya tenemos en el objeto xGrid.
Como no sabía si el problema era de la clase Conexion, pues empecé a comentar, modificar, copiar y pegar a tutiplén... colándoseme el resultado éste.
Aún así no terminan mis problemas. Abro otro hilo con lo que me hace el QT4, que parecen problemas distintos.
|
#7 Domingo, 13 Enero 2013, 20:21 |
|
|
shordi
Analista Programador
Registrado: Septiembre 2009
Mensajes: 4982
Edad: 64 Ubicación: Albacete
|
Re: Problema Con ListBox En Gambas 3 (solucionado)
Me autocito:
"En realidad el código real no..."
Si mis profesores de Lengua levantaran la cabeza... (la mayoría creo que está en el otro mundo).
|
#8 Domingo, 13 Enero 2013, 20:23 |
|
|
|
Temas parecidos
Temas parecidos
|
Página 1 de 1
|
Usuarios navegando en este tema: 0 registrados, 0 ocultos y 1 invitado Usuarios registrados conectados: Ninguno
|
No puede crear mensajes No puede responder temas No puede editar sus mensajes No puede borrar sus mensajes No puede votar en encuestas No puede adjuntar archivos Puede descargar archivos No puede publicar eventos en el calendario
|
|
|
|
|