Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Conexión con bases de datos (https://www.clubdelphi.com/foros/forumdisplay.php?f=2)
-   -   Sobre el DBGRID y como buscar en el (https://www.clubdelphi.com/foros/showthread.php?t=10634)

bustio 25-05-2004 09:51:28

Sobre el DBGRID y como buscar en el
 
Hola a la comunidad!!!
Estoy realizando una aplicacion que me ofrece datos de una BD, pero en el DBGRID que los muestra aparecen muchos. Cuando busco un elemento en especifico dentro del DBGRID tengo que ir recorriendo con la vista todo el contenido, lo que no me resuelve ningun problema. Yo necesito que pasandole un valor a un edit, me seleccione la linea del DBGRID donde se encuentra la primera ocurrencia. Esa es una, y la otra es que cuando le de doble click por ejemplo, a una casilla de un DBGRID este me devuelva su contenido, para luego hacer transacciones con el.
Agradezco todo tipo de ayudas.. sobre todo fragmentos de codigos..
Gracias!!!!

LAZARO BUSTIO MARTINEZ
-------------------------------
CUBA ES UNICA - VIVA CUBA, MEJICO, VENEZUELA, ARGENTINA, BRASIL, etc, etc

marcoszorrilla 25-05-2004 15:31:10

Hola Bustio:

En tu pregunta has omitido el motor de base de datos que estás utilizando, cosa muy importante a la hora de poder dar una respuesta válida, no obstante te voy a responder como si fuera para Paradox, pero más o menos, eso sí contando con el campo por el que deseamos buscar este indexado y además esté activo dicho índice.

Código Delphi [-]
MiTabla.IndexName:='MiIndice'; // Activamos el índice
//EdBuscar es un Tedit en donde vamos escribiendo letras
//y a medida que introducimos éstas realiza una búsqueda
//incrementa.
procedure TfrConClientes.edBuscarChange(Sender: TObject);
begin
DmFran.Cli.FindNearest([edBuscar.text]);
end;

Dependiendo el volumen de los datos y el sistema utilizado puede ser conveniente utilizar Querys.

Un Saludo.

bustio 25-05-2004 16:40:25

AClarando
 
Hola Marcos.. primero que todo te doy las gracias por tomarte el tiempo de responder m pregunta, pero en fin, la ayuda qeu me das no me ha servido de mucho, lo que no quiere decir qe no te la agradezca..todo lo contrario!!!
Lo que sucede es qeu no me entendiste o no me hico yo entender muy claro. Estoy utilizando SQL SERVER 2000, pero yo lo que necesito es que me busque solo dentro del DBGRID, que a la larga es lo mismo que buscar en la BD. No necesito hacer consultas al servidor de BD, sino que el mismo DBGRID sea el encargado de localizarme en cual de sus campos esta determinado dato.
En caso de qeu esto no pueda hacerse, bueno, tendria que buscar en la BD, y ahi mi problema seria como hacer para marcar, o resaltar el dato buscado si es que esta.

marcoszorrilla 25-05-2004 16:51:38

Cita:

Estoy utilizando SQL SERVER 2000
. Bueno ves como al final tienes que decir que motor utilizas, faltaría saber si te conectas mediante ADO?.

En cuanto a lo que dices del Dbgrid, aclarar que la rejilla en si no tiene datos, sino es porque está conectada a una fuente de datos a traves de un Dataset y este aun Ttable ó Tadotable.... y finalmente esto a la Bd que correspondan, por lo tanto lo que tienes que hacer es buscar en la Tabla,no en la rejilla, para lo cual si utilzas ADO, puedes hacer uso del método locate.

Estas es la ayuda resumida:
Cita:

with ADOTable1 do

Locate('Company;Contact;Phone', VarArrayOf(['Sight Diver', 'P', '408-431-1000']), [loPartialKey]);

Options is a set that optionally specifies additional search latitude when searching on string fields. If Options contains the loCaseInsensitive setting, then Locate ignores case when matching fields. If Options contains the loPartialKey setting, then Locate allows partial-string matching on strings in KeyValues. If Options is an empty set, or if KeyFields does not include any string fields, Options is ignored.

Locate returns True if it finds a matching row, and makes that row the current one. Otherwise Locate returns False.
Un Saludo.

raffagia 05-10-2004 20:15:35

Hola, estoy usando sql server 2000, lei acerca de còmo buscar un dato particular en en una tabla con FindNearest, pero cuando en el còdigo pongo:

dm.tabla.IndexName:= 'campo que quiero como indice' ;

me dice que no existe el ìndice y no sè còmo crearlo ni activarlo

muchas gracias.


La franja horaria es GMT +2. Ahora son las 11:32:12.

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