FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Temas de Hoy |
|
Herramientas | Buscar en Tema | Desplegado |
#1
|
|||
|
|||
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. |
#2
|
|||
|
|||
Hola...
Pues precisamente usando el método Locate. Puedes buscar en el foro o en la ayuda de Delphi como se usa... Saludos... |
#3
|
|||
|
|||
Gracias por tu respuesta.. pero he buscado y no encuentro nada..
Puede ser que sea utilizando la opcion loCaseInsensitive de la función Locate? |
#4
|
||||
|
||||
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.
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. |
#5
|
||||
|
||||
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 |
#6
|
|||
|
|||
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! |
#7
|
||||
|
||||
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 |
#8
|
||||
|
||||
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. |
#9
|
||||
|
||||
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. |
#10
|
||||
|
||||
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. |
#11
|
||||
|
||||
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. |
#12
|
|||
|
|||
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.. |
#13
|
|||
|
|||
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!! |
#14
|
||||
|
||||
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. |
#15
|
|||
|
|||
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!!! |
#16
|
||||
|
||||
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í.
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. |
#17
|
||||
|
||||
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, |
#18
|
|||
|
|||
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.. |
#19
|
||||
|
||||
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. |
#20
|
|||
|
|||
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! |
|
|
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 |
|