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 28-02-2005
Avatar de jas010
jas010 jas010 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Bolivia
Posts: 51
Poder: 20
jas010 Va por buen camino
Cool como hace una busqueda en mi dbgrid

como hago una busqueda en mi bdgrid
los datos los tengo ya cargados desde una consulta de sql osea en mi dbgrid esta el resultado de mi consulta (sql) el punto es que
necesito hacer
if dbgrid.¿? <>'' then
showmessge(..............)
Responder Con Cita
  #2  
Antiguo 01-03-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Lo correcto sería lanzar un Locate sobra la propia consulta.

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #3  
Antiguo 01-03-2005
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 20
Nbull Va por buen camino
Hola Marcos como se haría eso, yo tengo una consulta SQL de la siguiente manera:


Código Delphi [-]
 
if radiobutton1.checked then begin // Si hemos decidido filtrar por 
// el nombre...
Form1.Query2.Close();
// Utilizo quotedStr para ponerle comillas simple a la cadena 
Form1.Query2.SQL.Text := 'SELECT * FROM agenda WHERE
Nombre='+quotedStr(Edit1.Text);
Form1.Query2.Open();
//...

Asi realizo yo las busquedas en mi DbGrid y me funciona, pero, me gustaría poderlo hacer con un Locate, para asi, conforme escribo dos letras que se posicione en los registros que empiezan por esas dos letras.No se si me he explicado.

Se que con Locate existe la posibilidad de hacer [LoPartialKey] y [LoCaseInsensitive] que me harian eso, mi pregunta es: ¿Puedo añadir un Locate a mi consulta sin deshacer el código que te he mostrado antes?
He probado y no lo consigo, o no lo llamo bien al método o no se .

Gracias y Un saludo.
Responder Con Cita
  #4  
Antiguo 01-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Código Delphi [-]
 
if radiobutton1.checked then begin // Si hemos decidido filtrar por 
// el nombre...
Form1.Query2.Close();
// Utilizo quotedStr para ponerle comillas simple a la cadena 
Form1.Query2.SQL.Text := 'SELECT * FROM agenda WHERE
upper(Nombre) like '+quotedStr(uppercase('%'+Edit1.Text)+'%');
Form1.Query2.Open();
Form1.Query2.Locate('Nombre', edit1.text,[lopartialkey, locaseinsensitive]);
//...

He modificado el sql para que busque sin tener en cuenta las mayusculas, tambien, con el comodin % para que muestre todos los que contengan el texto del edit. (Suponiendo que el % sea el comodin de tu base de datos, tambien puede ser el *).

Saludos

Última edición por Lepe fecha: 01-03-2005 a las 11:35:36.
Responder Con Cita
  #5  
Antiguo 01-03-2005
Avatar de jas010
jas010 jas010 is offline
Miembro
 
Registrado: ago 2004
Ubicación: Bolivia
Posts: 51
Poder: 20
jas010 Va por buen camino
Exclamation buena la aclaracion

las aclaraciones hechas estan claras solo que la duda no esta resuelta

como le pregunto a la maquina si mi dbgrid tiene un dato o no tiene (dbgrid vacio)
si tiene un dato que me lo muestre en un showmessage y si no entonces que no haga nada
espero que me haya podido explicar y me hayan comprendido gracias una ves mas
Responder Con Cita
  #6  
Antiguo 01-03-2005
Avatar de DB-ADO
DB-ADO DB-ADO is offline
Miembro
 
Registrado: mar 2005
Ubicación: Bs As Argentina
Posts: 39
Poder: 0
DB-ADO Va por buen camino
No se ni me interesa
__________________
-------- Pablo: --------
----- Programador -----
-------- Delphi ---------
Responder Con Cita
  #7  
Antiguo 01-03-2005
Avatar de marcoszorrilla
marcoszorrilla marcoszorrilla is offline
Capo
 
Registrado: may 2003
Ubicación: Cantabria - España
Posts: 11.221
Poder: 10
marcoszorrilla Va por buen camino
Código Delphi [-]
 procedure TForm1.Button1Click(Sender: TObject);
 begin
   if query1.IsEmpty then
   ShowMessage('No hay Registros que mostrar')
   else
   ShowMessage('Hay Registros que mostrar');
  end;

Un Saludo.
__________________
Guía de Estilo de los Foros
Cita:
- Ça c'est la caisse. Le mouton que tu veux est dedans.
Responder Con Cita
  #8  
Antiguo 02-03-2005
[Nbull] Nbull is offline
Miembro Premium
 
Registrado: nov 2004
Ubicación: Valencia-España
Posts: 168
Poder: 20
Nbull Va por buen camino
Hola Lepe, nada quería decirte que muchas gracias que me ha funcionado muy bien, lo único que en el código que pusiste había que quitar el 'upper' que pusiste delante del campo Nombre, el código funcionando se quedaría así:


Código Delphi [-]
if radiobutton1.checked then begin // Si hemos decidido filtrar por el nombre...
   Form1.Query2.Close();
   // Utilizo quotedStr para ponerle comillas simple a la cadena (en el caso 
//que sea de tipo string  
   Form1.Query2.SQL.Text := 'SELECT * FROM agenda WHERE Nombre Like 
'+quotedStr(uppercase('%'+Edit1.Text+'%'));
   Form1.Query2.Open();
   Form1.Query2.Locate('Nombre',edit1.Text,[lopartialkey, locaseinsensitive]);

Nada Lepe muchas gracias de nuevo y que pases buena tarde.

Un Saludo
Responder Con Cita
  #9  
Antiguo 03-03-2005
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
No se ha dicho que gestor de bases de datos estas usando, en una búsqueda ultrarápida http://www.brettb.com/SQL_Help_Chang...Upper_Case.asp
se ve que esa función pertenece al sql y si funciona.

El motivo de incluir esa función es para que se encuentre el texto de búsqueda, tanto en mayusculas como en minusculas.

Ahora mismo solo te encontrará los que esten escritos en mayusculas.

Saludos de nuevo.
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


La franja horaria es GMT +2. Ahora son las 07:08:43.


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