Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

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

Grupo de Teaming del ClubDelphi

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 04-10-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Poder: 19
klionsis Va por buen camino
Busqueda en string sin SQL

Hola gente, se puede buscar por el contenido de un String sin utilizar una consulta SQL... usando el Locate u otra función parecida.

Lo que busco es que el cursor se posicione en el registro que contiene la cadena que ingreso en una caja de texto por ejemplo, por esto no quiero una consulta sql.


Gracias.
Responder Con Cita
  #2  
Antiguo 04-10-2008
[maeyanes] maeyanes is offline
Capo de los Capos
 
Registrado: may 2003
Ubicación: Campeche, México
Posts: 2.732
Poder: 24
maeyanes Va por buen camino
Hola...

Pues precisamente usando el método Locate. Puedes buscar en el foro o en la ayuda de Delphi como se usa...


Saludos...
Responder Con Cita
  #3  
Antiguo 04-10-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Poder: 19
klionsis Va por buen camino
Gracias por tu respuesta.. pero he buscado y no encuentro nada..
Puede ser que sea utilizando la opcion loCaseInsensitive de la función Locate?
Responder Con Cita
  #4  
Antiguo 04-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola Kilonis, la función Locate tiene las opciones loCaseInsensitive y loPartialKey dependiendo cual te sirva utilizas una u otra,

loCaseInsensitive -> te hace una busqueda exacta, sin tomar en cuenta mayusculas o minusculas.
loPartialKey -> te hace una busqueda aproximada.

Código Delphi [-]
 if Not (Query.Locate('campo',Edit1.Text,[locaseinsensitive])) then
   showmessage('No ha encontrado nada');

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #5  
Antiguo 04-10-2008
Avatar de Fenareth
[Fenareth] Fenareth is offline
Miembro Premium
 
Registrado: oct 2007
Ubicación: Guadalajara, Jalisco, México
Posts: 494
Poder: 17
Fenareth Va por buen camino
Hola klionsis !

Este ejemplo es utilizando un TEdit y un TDBGrid....

probablemente te pueda ayudar de mucho...

Saludos,
__________________
Ask questions. Think for yourself. Wake up and you’ll make the difference
Responder Con Cita
  #6  
Antiguo 04-10-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Poder: 19
klionsis Va por buen camino
Muchas gracias por sus respuestas, pero no es lo que busco.
Lo que quiero hacer es una consulta que me posicione el cursor en la grilla correspondiente al registro que "contiene" la cadena que ingreso en el textbox.

Seria el mismo comportamiento que tendria una consulta sql con el Like %campo%. He probado con el Locate como me indican pero el comportamiento no es el que busco.

Espero puedan ayudarme, gracias!
Responder Con Cita
  #7  
Antiguo 05-10-2008
Avatar de Fenareth
[Fenareth] Fenareth is offline
Miembro Premium
 
Registrado: oct 2007
Ubicación: Guadalajara, Jalisco, México
Posts: 494
Poder: 17
Fenareth Va por buen camino
Pues no entiendo realmente la diferencia entre lo que pides y los ejemplos que hemos colocado ....

Podrías explicar un poco mejor y así nos aclaramos todos ???
__________________
Ask questions. Think for yourself. Wake up and you’ll make the difference
Responder Con Cita
  #8  
Antiguo 05-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Mira bien la ayuda de locate, además de locaseInsensitive, tienes usar "loPartialkey"

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 06-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola, lo que yo entiendo es que el amigo busca Like %campo% , pero con la opción IoPartialKey del Locate, hace la busqueda aproximada pero no de esa forma, sino algo asi Like campo%.

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #10  
Antiguo 06-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Cita:
Empezado por klionsis Ver Mensaje
Seria el mismo comportamiento que tendria una consulta sql con el Like %campo%. He probado con el Locate como me indican pero el comportamiento no es el que busco.
Yo al menos entiendo que quiere hacerlo con el locate, y así es si lee bien la ayuda . Porque vamos, no hay quien le saque una línea de código ni arrastrándolo y mi bola de cristal está fuera de cobertura .
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.

Última edición por Lepe fecha: 06-10-2008 a las 07:31:40.
Responder Con Cita
  #11  
Antiguo 06-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo, no me he explicado bien, digamos que tenemos "Ana Maria Rojas" con el IoPartialKey si hacemos una búqueda por "Maria", no lo va ha encontrar ya que hace la búsqueda aproximada de lo que se pasa como parametro y cualquier cosa que venga despues, osea que encontraría todos los registros que en ese campo comiencen con "Maria". Y lo que creo que quiere es %Cadena%, osea cualquier cosa, el parametro y cualquier cosa.

Como mi bolita de cristal tampoco funciona, puede que no le haya entendido bien al amigo .

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #12  
Antiguo 06-10-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Poder: 19
klionsis Va por buen camino
jeje, mis disculpas a todos por no ser claro. Caro, es exáctamente lo que busco... el Lopartialkey siempre me busca por el comienzo de la cadena, quiro poder buscar por lo que contiene la cadena..

Saludos..
Responder Con Cita
  #13  
Antiguo 08-10-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Poder: 19
klionsis Va por buen camino
Bueno, parece que mi falta de claridad los ha dejado sin habla . Todavía no encuentro una solución para mi problema.. si alguién tiene una idea podría ayudarme...

Gracias!!
Responder Con Cita
  #14  
Antiguo 08-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
Caro ya te dió la solución en su primer mensaje. Otra forma no hay.

Podrías decir por qué no te sirve un query, quizás le encontremos solución.

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #15  
Antiguo 08-10-2008
donki donki is offline
Miembro
 
Registrado: oct 2006
Posts: 24
Poder: 0
donki Va por buen camino
Hola chicos,

A ver que os parece mi aportación.

Si os fijais en la implementación del Locate lo que hace es un clon del RecordSet (en el caso de utilizar los componentes de ADO). Luego Filtra con la propiedad filter el Clon y con el bookmark que obtiene posiciona el TDataset principal. Creo que podria servirte un código similar a este:

Dataset1.DisableControls;
Dataset1.Filtered := True;
Dataset1.Filter := 'Campo_Por_El_que_buscas like '+QuotedStr('%'+Valor+'%');
bm := DataSet.GetBookMark;
Dataset1.Filtered := False;
Dataset1.EnableControls;
Dataset1.GotoBookMark(bm);

Espero que te ayude
__________________
Grandes frases de nuestro tiempo:
"La pasta no és para tirarla, es para el Tunning"

"TodoOK=False...."

Enjoy it!!!
Responder Con Cita
  #16  
Antiguo 09-10-2008
Avatar de Caro
*Caro* Caro is offline
Moderadora
 
Registrado: jul 2004
Ubicación: Cochabamba, Bolivia
Posts: 2.544
Poder: 22
Caro Va por buen camino
Hola de nuevo, con el Locate no vas a poder hacer la búsqueda que quieres. Y otra función que haga lo que quieres creo que no hay. Lo que se me ocurre es que te hagas tu la función y busques el registro, mas o menos así.

Código Delphi [-]
var
 Campo : String;
 Encontrado : Boolean;
 Marca : TBookMarkStr;
begin
  Encontrado := False;
  Try
   Marca := Query.Bookmark;
   Query.DisableControls;
   Query.First;
   //Recorremos hasta encontrar o hasta el final
   While Not Query.Eof do
    begin
     Campo := Query.FieldByName('nombrecampo').AsString;
     if AnsiPos(Edit1.Text, Campo)>0 then
      begin
       Encontrado := True;
       break;
      end;
     Query.Next;
    end;
  finally
   Query.EnableControls;
  end;
  //Si no ha encontrado, lo posicionamos donde estaba antes
  //y si ha encontrado se queda en en esa posición.
  if Not Encontrado then
   Query.Bookmark := Marca;

Saluditos
__________________
Disfruten cada minuto de su vida a lado de sus seres queridos como si fuese el ultimo, uno nunca sabe lo que puede pasar.
Responder Con Cita
  #17  
Antiguo 09-10-2008
Avatar de Delphius
[Delphius] Delphius is offline
Miembro Premium
 
Registrado: jul 2004
Ubicación: Salta, Argentina
Posts: 5.582
Poder: 25
Delphius Va camino a la fama
Perdonen que me entrometa en el hilo, pero la curiosidad me invade ¿klionsis, porqué ese "rechazo" a la consulta SQL?
¿En qué te puede afectar o perjudicar?

Saludos,
__________________
Delphius
[Guia de estilo][Buscar]
Responder Con Cita
  #18  
Antiguo 10-10-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Poder: 19
klionsis Va por buen camino
jeje, no es rechazo, es solo que la consulta sql me devuelve una coleccion de registros segun el filtro que le pase (me restringe el conjunto de registros a los que se se corresponden con el filtro) y yo no necesito esto, lo que necesito es posicionarme en un registro y que si quiero ver el registro que sigue me lo permita por mas que este no cumpla el criterio de busqueda que le dí... se entiende?

Gracias a todos por las alternativas que me dieron!! no he podido probarlas aún pero les aviso de los resultados...

Disculpen por la ignorancia, soy principiante..
Responder Con Cita
  #19  
Antiguo 10-10-2008
Avatar de Lepe
[Lepe] Lepe is offline
Miembro Premium
 
Registrado: may 2003
Posts: 7.424
Poder: 29
Lepe Va por buen camino
El motor de bases de datos es más eficiente que tú, es decir, cerrar una consulta, cambiar el criterio de búsqueda y lanzarla, puede devolver los datos más rápidamente y eficientemente que moverte tú entre registros.

Por otra parte, y sin tener nada que ver.... ¿de qué le sirve un registro que no cumple el criterio de búsqueda al usuario final? .

Saludos
__________________
Si usted entendió mi comentario, contácteme y gustosamente,
se lo volveré a explicar hasta que no lo entienda, Gracias.
Responder Con Cita
  #20  
Antiguo 10-10-2008
klionsis klionsis is offline
Miembro
 
Registrado: may 2006
Posts: 50
Poder: 19
klionsis Va por buen camino
Lepe, tienes razón en lo que dices con lo cuál el motor de base de datos puede ser mas eficiente que cualquiera de nosotros si utilizamos lo que puede hacer con mucha eficiencia pero de nada me sirve lo potente que pueda ser la herramienta si no satisface la necesidad de las personas.

En realidad el concepto "consulta" en este hilo quizás este mal utilizado, lo que pretendo es que la persona con un par de datos que introduzca en una caja de texto, ordene la grilla por el criterio en que estaría filtrando el conjunto de datos y lo posicione en el primer registro que encuentre (en la grilla ordenada) el cual contiene esa cadena que ingresó, despúes si el quiere ir mas abajo de esa grilla o mas arriba, la aplicación se lo debe permitir y por esto no puedo reducir el conjunto de registros que tengo en una determinada tabla.

Saludos!
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
Pasar de string a $ o de $ a string BuRtOn Varios 8 17-06-2008 01:53:45
la expresión String s = new String("hola"); David JAVA 4 22-02-2008 19:33:20
Busqueda de un string a lo largo de un TFileStream. MaxiDucoli Varios 8 26-08-2007 17:05:55
(const Value: string) vs (Value: string) eliash OOP 10 14-12-2005 19:10:13
Búsqueda muy específica en un string... JuanBCT Varios 15 02-05-2005 14:58:00


La franja horaria es GMT +2. Ahora son las 06:53:50.


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