Página 1 de 1

ListView

Publicado: 10 Feb 2011, 11:27
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!

Re: ListView

Publicado: 10 Feb 2011, 11:31
por BasicOs
Aquí un ejemplo de uso de ListView, puede que solucione el problema:
http://www.emesn.com/autoitforum/viewto ... View#p9553

Re: ListView

Publicado: 10 Feb 2011, 12:45
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.

Re: ListView

Publicado: 10 Feb 2011, 21:36
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 ...