jueves, 22 de junio de 2017

Locate: función para buscar en un TDataSet

Locate es una función pública de la clase TDataSet para encontrar un registro y posicionar sobre él el puntero, muy práctico para utilizar juntamente con un TDBGrid. Si se encuentra lo buscado retorna true y posiciona el puntero sobre el registro, caso contrario, retorna false y el puntero no se mueve.

Ejemplo:

DMInsu.ZQ.Locate ( 'insumo' , edBuscar.Text, [loCaseInsensitive, loPartialKey] );

Busca en el campo llamado insumo el texto ingresado en el TEdit buscar, ignorando mayúsculas y minúscalas y aceptando encontrar parcialmente, es decir, si el usuario ingresó "az" y existe un registro con el campo insumo con el valor "azúcar", devolverá true.
Para el caso de buscar número enteros, como por ejemplo un ID, funciona correctamente pero no se deben especificar las opciones de búsqueda.

DMInsu.ZQ.Locate ( 'id' , edBuscar.Text, []);

También se pueden realizar búsquedas complejas con varios campos y pasar un vector (array).

loCaseInsensitive y loPartialKey son las únicas opciones.

Más información:
http://wiki.freepascal.org/locate
http://lazarus-ccr.sourceforge.net/docs/fcl/db/tdataset.locate.html
http://lazarus-ccr.sourceforge.net/docs/fcl/db/tlocateoption.html

No hay comentarios:

Publicar un comentario