Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 24-01-2007
Avatar de day_eli
day_eli day_eli is offline
Miembro
 
Registrado: ene 2007
Posts: 31
Poder: 0
day_eli Va por buen camino
Unhappy ¿Como hacer una Consulta en el Onchange de un TEdit?

Hola amigos... Quisiera saber como puedo hacer una consulta de clientes en el onchange de un tedit (estilo encarta), que me permita buscar por su apellido de tal manera que los elementos que se encuentren me los muestre en el dbgrid que esta conectado a la base de datos a medida que el usuario va tecleando el nombre del cliente.
Responder Con Cita
  #2  
Antiguo 24-01-2007
Avatar de Onti
Onti Onti is offline
Miembro
 
Registrado: jul 2003
Ubicación: La Paz - Bolivia
Posts: 500
Poder: 21
Onti Va por buen camino
Podriaa utilizar un código como este en el evento onchange o tambien onkeyPress

Código Delphi [-]
Var
  LCad :String;
begin
  LCad :=QuotedStr('%'+E_Apellido.Text+'%');
  QConsulta.Close;
  QConsulta.SQL.Clear;
  QConsulta.SQL.Add('SELECT APELLIDO FROM MITABLA WHERE APELLIDO LIKE '+LCad);
  QConsulta.Open;
end;
Responder Con Cita
  #3  
Antiguo 24-01-2007
Avatar de droguerman
droguerman droguerman is offline
Miembro
 
Registrado: abr 2005
Ubicación: tierra
Posts: 999
Poder: 20
droguerman Va por buen camino
mi método funciona bien:
Código Delphi [-]
with dataset do
begin
  filtered := false;
  filter := 'nombre LIKE '+quotedStr(edit1.text)+'%';
  filtered := true;
end;

saludos
__________________
self.free;
Responder Con Cita
  #4  
Antiguo 25-01-2007
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.275
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Piensa que si la tabla donde estás haciendo la búsqueda es unpoco grande, puede ser muy costoso ir haciendo consultas a cada momento que el usuario pulsa una tecla.
Yo pensaría en la posibilidad de guardar la tabla donde haces la búsqueda en memoria, ya sea vía TClientDataset o algun otro componente específico para ello (MemoryTable -rx- o similar).
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #5  
Antiguo 25-01-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
Al mensaje de droguerman, yo añadiría la opción más simple, en el OnKeyDown (por ejemplo) detectar que se pulsa intro y así lanzar la consulta una sola vez:

Código Delphi [-]
if Key = VK_RETURN then
with dataset do
begin
  filtered := false;
  filter := 'nombre LIKE '+quotedStr(edit1.text)+'%';
  filtered := true;
end;

Es una opción que suele gustar al usuario cuando hay muchos registros; cuando hay pocos, no resulta pesado el método.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #6  
Antiguo 26-01-2007
Avatar de day_eli
day_eli day_eli is offline
Miembro
 
Registrado: ene 2007
Posts: 31
Poder: 0
day_eli Va por buen camino
Buen día...para las sugerencias de Lepe y Drogerman, el codigo me genera un error que dice: 'Dynamic SQL Error'. Error code=-104
Responder Con Cita
  #7  
Antiguo 26-01-2007
Avatar de Caral
[Caral] Caral is offline
Miembro Premium
 
Registrado: ago 2006
Posts: 7.659
Poder: 25
Caral Va por buen camino
Hola day_eli
Un filtro es relativamente facil de conseguir
En el ejemplo que esta aqui:
ftp://196.40.62.225/
Puedes ver como se hace, instalalo y lo pruebas, esta el codigo completo, es un ejemplo que hice casualmente para estas dudas, Filtra varias cosas, edits, comobox en un dbgrid.
Saludos
Responder Con Cita
  #8  
Antiguo 27-01-2007
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 28
Lepe Va por buen camino
day_eli ¿qué base de datos estas usando? ¿qué componenentes? ¿que instrucción SQL estas enviando?(haz un ShowMessage antes de abrir la consulta).

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #9  
Antiguo 28-01-2007
Avatar de Crashthebig
Crashthebig Crashthebig is offline
Miembro
 
Registrado: oct 2006
Ubicación: Republica Dominicana
Posts: 59
Poder: 18
Crashthebig Va por buen camino
Talking Eso es algo facil de hacer

Este es el codiggo que debes usar pon esto en el evento onchange de to edit
Nombres en este caso es el campo de busqueda


Table1.locate('Nombres',edit1.text,[lopartialkey,locaseinsensitive];
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
Hacer evento Tab en TEdit JELIRM Varios 17 19-06-2008 19:06:34
Como hacer una consulta (Query) con dos DB? El_Raso Firebird e Interbase 8 30-01-2007 05:37:49
Como Realizar una consulta desde un Tedit? ing.cagn SQL 7 06-01-2006 20:47:12
como hacer que una columna del dbgrid contenga un valor de un TEdit en cada celda Shidalis OOP 2 02-08-2005 12:05:35
Duda sobre como hacer Consulta SQL lafirma SQL 4 15-10-2003 14:20:12


La franja horaria es GMT +2. Ahora son las 17:48:44.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi