Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > SQL
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 07-10-2006
Pedro-Juan Pedro-Juan is offline
Miembro
 
Registrado: ago 2006
Ubicación: Barcelona - España
Posts: 315
Poder: 18
Pedro-Juan Va por buen camino
Smile Búsquedas en un Query

Hola a todo/as

Cómo hacer búsquedas en un Query, por ejemplo con FindNearest(), como en una Table?
Imaginaros una consulta cuyo resultado es muy grande, por ejemplo los clientes de una ciudad con 600, 700 o más registros de resultado de la consulta. Dentro de esa consulta, de los clientes de esa ciudad, queres buscar uno al modo de FindNearest(), Cómo hacerlo?

Código Delphi [-]
FormMain.Edit1.OnChange(Sender);
var cTexto: String;
begin
cTexto := FormMain.Edit1.Text;
  //Esto funciona, se posiciona en el más cercano a medida que se plusan teclas
   if FormMain.DbGrid1.DataSource = DataSourceTable1 then Table1.FindNearest([cTexto]);

  //Pero esto no:
   if FormMain.DbGrid1.DataSource = DataSourceQuery1 then Query1.FindNearest([cTexto]);
end;

Para el Query da un error de undeclared identifier
Locate sí funcioma con Query, pero no es eso lo que quiero, quiero que se posicione a medida que se pulsan teclas.

Muchas gracias a todos/as, ahora funciona con esto

Código Delphi [-]
//...
uses db;
//...
  if FormMain.DbGrid1.DataSource = DataSourceQuery1 then 
     with Query1 do Locate('cCampo', cTexto, [loCaseInsensitive, loPartialKey]);

Última edición por Pedro-Juan fecha: 08-10-2006 a las 17:00:29.
Responder Con Cita
  #2  
Antiguo 07-10-2006
ilichhernandez ilichhernandez is offline
Miembro
 
Registrado: oct 2005
Posts: 277
Poder: 19
ilichhernandez Va por buen camino
Revisa ente enlace...
http://www.latiumsoftware.com/es/pascal/0007.php, es bastante explicativo.
__________________
[Lo que a veces es tan facil, a veces parece imposible]
Responder Con Cita
  #3  
Antiguo 07-10-2006
Pedro-Juan Pedro-Juan is offline
Miembro
 
Registrado: ago 2006
Ubicación: Barcelona - España
Posts: 315
Poder: 18
Pedro-Juan Va por buen camino
Muchas gracias, pero y con un TQuery?, no lo he visto en el enlace que me has enviado
Responder Con Cita
  #4  
Antiguo 07-10-2006
Avatar de vtdeleon
vtdeleon vtdeleon is offline
Miembro
 
Registrado: abr 2004
Ubicación: RD & USA
Posts: 3.236
Poder: 24
vtdeleon Va por buen camino
Cita:
por ejemplo con FindNearest(), como en una Table?
Si, es lo mismo
Cita:
no lo he visto en el enlace que me has enviado
Si no te ayudas, quien lo va a hacer por ti?
__________________
Van Troi De León
(Not) Guía, Code vB:=Delphi-SQL, ¿Cómo?
Viajar en el tiempo no es teóricamente posible, pues si lo fuera, ya estarían aqui contándonos al respecto!
Responder Con Cita
  #5  
Antiguo 07-10-2006
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
La linea en rojo nunca entrará:

Cita:
Empezado por Pedro-Juan
Hola a todo/as

Cómo hacer búsquedas en un Query, por ejemplo con FindNearest(), como en una Table?
Imaginaros una consulta cuyo resultado es muy grande, por ejemplo los clientes de una ciudad con 600, 700 o más registros de resultado de la consulta. Dentro de esa consulta, de los clientes de esa ciudad, queres buscar uno al modo de FindNearest(), Cómo hacerlo?

FormMain.Edit1.OnChange(Sender);
var cTexto: String;
begin
cTexto := FormMain.Edit1.Text;
//Esto funciona, se posiciona en el más cercano a medida que se plusan teclas
if FormMain.DbGrid1.DataSource = Table1 then Table1.FindNearest([cTexto]);

//Pero esto no:
if FormMain.DbGrid1.DataSource = Query1 then Query1.FindNearest([cTexto]);
end;
//Para el Query da un error de undeclared identifier

Locate sí funcioma con Query, pero no es eso lo que quiero, quiero que se posicione a medida que se pulsan teclas.

Muchas gracias y un saludo
Porque estas comparando un TDatasource con un TDataset,
la línea correcta sería:
Código Delphi [-]
   if FormMain.DbGrid1.DataSource.Dataset = Query1 then

Lo normal es conectar la tabla a un TDataSource, y despues el Grid al TDatasource. Si se hace de otras formas, hay que tener cuidado.

PD: Por favor, encierra el código entre

[ delphi ]
aqui vuestro codigo
[ /delphi ]

(sin espacios dentro de los corchetes) Así consigues que respete el identado y aparezca las palabras reservadas en negrita y colores.

Código Delphi [-]
procedure Saludos();
begin 
   ShowMessage(' Un saludo y hasta luego');
end;
__________________
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 08-10-2006
Pedro-Juan Pedro-Juan is offline
Miembro
 
Registrado: ago 2006
Ubicación: Barcelona - España
Posts: 315
Poder: 18
Pedro-Juan Va por buen camino
Cita:
Empezado por Lepe
La linea en rojo nunca entrará:



Porque estas comparando un TDatasource con un TDataset,
la línea correcta sería:

Código Delphi [-]
if FormMain.DbGrid1.DataSource.Dataset = Query1 then





Lo normal es conectar la tabla a un TDataSource, y despues el Grid al TDatasource. Si se hace de otras formas, hay que tener cuidado.

PD: Por favor, encierra el código entre

[ delphi ]
aqui vuestro codigo
[ /delphi ]

(sin espacios dentro de los corchetes) Así consigues que respete el identado y aparezca las palabras reservadas en negrita y colores.


Código Delphi [-]
procedure Saludos();
begin
ShowMessage(' Un saludo y hasta luego');
end;


Hola y gracias por responder.

No hay error en el código original, solo aquí, en el mensaje.
La cuestión es si FindNearest() funciona en un TQuery como lo hace en TTable.
El error es de compilación (undeclarer identifier), por lo que no reconoce FindNearest() cuando va acompañando a un TQuery.
Lo que busco es un metodo que sí funcione con TQuery.

Gracias.

Última edición por Pedro-Juan fecha: 08-10-2006 a las 16:21:52.
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
Como hacer referencia a un query dentro de otro query? JuanBCT SQL 2 05-09-2006 18:35:25
Busquedas yhoho SQL 2 17-02-2005 15:29:40
busquedas chuley Varios 6 01-08-2003 22:31:41


La franja horaria es GMT +2. Ahora son las 02:09:47.


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