 |
Club Builder Foro de C++Builder en español
|
| Ver tema anterior :: Ver tema siguiente |
| Autor |
Mensaje |
Manolo(er_lolo) Capt


Registrado: 28 Jul 2003Mensajes: 172Ubicación: Salamanca
|
Publicado: Mie 18 Feb, 2004 10:24 am Asunto: Buscar un registro en una Consulta |
|
|
Wenas, haber si me explico bien, lo que quiero es realizar algo parecido a la funcion FindNearest de una tabla pero en una consulta (TQuery), es decir, buscar un campo, y si no lo encuentra posicionarse en el mas parecido.
Lo unico que se me ha ocurrido es crear otra consulta SQL, y utilizar el comando "LIKE *texto a buscar*", pero esto me relentizaria muxo la busqueda, ya q tengo asociada la consulta a un Grid.
Alguna sugerencia?, la funcion Locate tiene alguna opcion similar?.
Gracias y un saludo. |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Mie 18 Feb, 2004 7:23 pm Asunto: |
|
|
La opción que más utilizo es Locate
Para mejorar el performance utiliza los metodos EnableControls y DisableControls del grid.
Ej.
| Código: |
TLocateOptions Opcion;
Ops.Clear();
Ops << loCaseInsensitive; //esta opción te permite encontrar
//exactamante lo que buscas
//... la otra opción
//es "loCasePartialKey", ésta funciona
//como LIKE, tu decides cual utilizar.
grid1->DisableControls(); // Deshabilita los controles del grid
// Esto con la finalidad de de que cuando se
// recorra la consulta, no se tenga que
// volver a pintar la pantalla
try {
qryConsulta->First(); // posicionarse en el primer registro
qryConculta->Locate("Nombre", Edit1->Text, Opcion);
// El metodo Locate utiliza tres parametros...
// El primero especifica que campo es sobre el que quieres
// buscar, el segunto el valor a buscar y el tercero las
// condiciones de busqueda.
}
__ finally
{
grid->EnableControls();
}
| ^
Espero te sirva
Saludos _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
Buildero Master


Registrado: 23 Dic 2003Mensajes: 523Ubicación: Puebla, México
|
Publicado: Mie 18 Feb, 2004 7:27 pm Asunto: |
|
|
Otra vez yo...
Hay un error en la primera parte del código
Debe ser asi:
| Código: |
TLocateOptions Opcion;
Opcion.Clear(); // Estaba Ops.Clear()
Opcion << loCaseInsensitive;
|
Saludos _________________ Quien hace una pregunta teme parecer un ignorante durante cinco minutos, quien no pregunta se mantiene ignorante toda la vida. |
|
| Volver arriba |
|
 |
|
|
No puedes publicar temas nuevos en este foro No puedes responder a temas en este foro No puedes editar tus mensajes en este foro No puedes borrar tus mensajes en este foro No puedes votar en las encuestas de este foro
|
© 2002–2026 Club Builder · Funciona con phpBB.
|