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 

atualizador

 
Publicar nuevo tema   Responder al tema    Foros de discusión -> Bases de Datos
Ver tema anterior :: Ver tema siguiente  
Autor Mensaje
Mensaje    Asunto: atualizador Responder citando

Bienas!

Tengo una duda, es que quiero hacer que un DBGrid me se vaya actualizando cada vez que inserto una letra en un tedit.

- En la consulta SQL del dbgrid, como me puedo referir a que me busque lo esrito en el tedit pero que todavia no esta completa. O sea, como un ho*.doc en un buscador de windows.

- Es la mejor forma de hacerlo?? Es que tengo una tabla clientes i quiero que a medida que vaya escribiendo me vaya quitando posibles resultados en el grd.

La consulta del grid la ago en el evento keypress del edit.

Muchas gracias
Volver arriba
Mensaje    Asunto: Responder citando

Hola, puedes lanzar una consulta de la manera siguente:
En el evento OnKeyPress del Edit pones
Código:
Query1->SQL->Clear();
Query1->SQL->Add("Select NombreCampo from NombreTabla where NombreCampo Like '"+Edit1->Text+"%'");
Query1->Open();


Pero no te lo recomiendo a menos que sea para tablas cortas ya que lanzarias una consulta cada vez que se pulse una tecla y se puede poner muy lenta tu aplicacion. Es preferible lanzar la consulta cuando se presione la tecla enter por ejemplo y hacer la consulta de modo que abarque no solo los que empiecen con.. sino los que contengan a..
Código:

if(Key==13)
{
Query1->SQL->Clear();
Query1->SQL->Add("Select NombreCampo from NombreTabla where NombreCampo Like '%"+Edit1->Text+"%'");
Query1->Open();
}

Lo anterior lo podemos refinar un poco si ponemos la DBGrid en un Form independiente y con la propiedad visible a false para mostrarlo solo cuando sea requerido
Código:

if(Key==13)
{
Query1->SQL->Clear();
Query1->SQL->Add("Select NombreCampo from NombreTabla where NombreCampo Like '%"+Edit1->Text+"%'");
Query1->Open();
}
if(Query1->RecordCount>=1)
 FormGrid->Show();

Despues debes proveer una forma de copiar lo que seleccione el usuario al edit, claro en caso que seleccione algo.
Volver arriba
Ver perfil de usuario Enviar mensaje privado Enviar email
Mensaje    Asunto: Responder citando

ok, lo probare. Es que estoy haciendo una aplicacioni es forma del grid es la unica que me se ha ocurrido. Nose de que otra forma lo podria hacer. Mi idea era tambien hacer-lo com la barra de direccion del explorador. Que a medida que vaya escribiendo del mismi edit salga l ke pueda poner. Eso si que nose como hacer-lo.

Gracias!
Volver arriba
Mensaje    Asunto: Responder citando

Buenas! He puesto la consulta Select NombreCampo from NombreTabla where NombreCampo Like '"+Edit1->Text+"%' pero hay una cosa.
Cuando pongo la primera letra me lo mostra todo. Es como si fuera un caracter retrazado. Si ponga la segunda, me muestra los resultados de la primera....

Puede ser culpa del LIKE??

gRACIAS
Volver arriba
Mensaje    Asunto: Responder citando

Prueba tu código en el evento OnKeyUp

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.