ListView

Pregunta Sin Miedo no te cortes cualquier cosa para empezar - Autoit se comienza facilmente.Para Ordenes o Comandos sueltos. Ver nota como preguntar.
Responder
avechuche
Hacker del Foro
Mensajes: 188
Registrado: 13 Ago 2009, 09:53

ListView

Mensaje por avechuche »

Bueno resulta que tengo un db y un ListView que muestra cada dato de esa db. REsulta que al modificar un dato, para que el ListView se actualize, tengo que volver a cargar la db, eso no es problema si tengo 10 filas en la db, pero si tengo 1000, cada vez que quiero actualizar un dato, tiene q cargar la db y segun en que PC se ejecute tarda nada o tarda una vida. Como podria hacer para que editar una linea del ListView, sin borrarla ni nada, cambiar la original.
Tengo lo siguiente para q vean:
Es un ListView que muestra los datos de una db. Son datos de personas. Bueno resulta que mediante la funcion "_WM_NOTIFY" tomo los controles del List y al hacerle 2 clic a un listViewItem se abre otro GUI con los datos separados para modificarlos (Nombre, apellido, direccion ,etc etc). Cuando le doy guardar, se actualiza la db, pero para que se actualize el ListView tiene que cargar la db de nuevo. Quiero saber que puedo hacer para que me modifique el ListView sin tener que volver a carga la db, pero de forma automatica, probe con GUICtrlListView_EditLabel pero no me sirve... Bueno muchas gracias!
Avatar de Usuario
BasicOs
Site Admin
Mensajes: 2091
Registrado: 21 Nov 2006, 19:24
Ubicación: El Internet - (Canarias, España)
Contactar:

Re: ListView

Mensaje por BasicOs »

Aquí un ejemplo de uso de ListView, puede que solucione el problema:
http://www.emesn.com/autoitforum/viewto ... View#p9553
Avatar de Usuario
Chefito
Profesional del Autoit
Mensajes: 2035
Registrado: 21 Feb 2008, 18:42
Ubicación: Albacete/Cuenca (España)

Re: ListView

Mensaje por Chefito »

Hace años, lo que yo hacía ante este problema (evitar actualizar el grid y la base de datos porque podía tardar mucho) era que aplicaba los cambios directamente a la base de datos y al mismo tiempo al grid.
Con esto te digo que al mismo tiempo que por ejemplo edites un registro de la base de datos por código (sentecia sql....velocidad inmediata), también edites por código el item del listview, sin tener que refrescar la bbdd y el listview. Sería con la función _GUICtrlListView_SetItemText. Esta técnica lo aplicaba con todos los cambios que tenía que hacer en la base de datos y en el listview. Por ejemplo, al borrar un registro, al insertarlo, etc.

Saludos.
Cita vista en algún lugar de la red: En este mundo hay 10 tipos de personas, los que saben binario y los que no ;).
avechuche
Hacker del Foro
Mensajes: 188
Registrado: 13 Ago 2009, 09:53

Re: ListView

Mensaje por avechuche »

Chefito escribió:Hace años, lo que yo hacía ante este problema (evitar actualizar el grid y la base de datos porque podía tardar mucho) era que aplicaba los cambios directamente a la base de datos y al mismo tiempo al grid.
Con esto te digo que al mismo tiempo que por ejemplo edites un registro de la base de datos por código (sentecia sql....velocidad inmediata), también edites por código el item del listview, sin tener que refrescar la bbdd y el listview. Sería con la función _GUICtrlListView_SetItemText. Esta técnica lo aplicaba con todos los cambios que tenía que hacer en la base de datos y en el listview. Por ejemplo, al borrar un registro, al insertarlo, etc.

Saludos.
Pero tan facil era -.- son tantos comandos que no se con que arrancar ... muchas gracias problema resuelto
PD: Si alguien lo usa tiene que usar tmb el comando _GUICtrlListView_GetNextItem para obtener el index de la fila a renombrar ...
Responder