Club Builder - Foros de discusión Club Builder
Foro de C++Builder en español
 
 FAQFAQ   BuscarBuscar   MiembrosMiembros   Grupos de UsuariosGrupos de Usuarios   RegistrarseRegistrarse 
 PerfilPerfil   Entra para ver tus mensajes privadosEntra para ver tus mensajes privados   EntrarEntrar 

Buscar un registro en una Consulta

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: Buscar un registro en una Consulta Responder citando

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
Ver perfil de usuario Enviar mensaje privado MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mensaje    Asunto: Responder citando

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
Ver perfil de usuario Enviar mensaje privado Enviar email MSN Messenger
Mostrar mensajes de anteriores:   
Cambiar a:  
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


Hosting WordPress Indedmedia desde 3,99 €
© 2002–2026 Club Builder · Funciona con phpBB.