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)
-   -   conexión con dbgrid (https://www.clubdelphi.com/foros/showthread.php?t=30676)

Jheysson13 13-04-2006 01:15:11

conexión con dbgrid
 
hola a todos, no soy experto en delphi y mi pregunta es sencilla.
quisiera que cuando activo el dbgrid este solo me despliegue los resultados que deseo y no toda la tabla como siempre me lo hace. aguien me puede ayudar por favor. gracias:)

Bicho 13-04-2006 01:29:13

Hola, bienvenido al foro antetodo.

En primer lugar sino te has leido la Guia de Estilo pasate por ahí nunca viene mal (el link esta en mi firma)

Respecto a tu pregunta, si quieres que en un DBGrid se visualicen sólo los datos que desees debes asignarle una Query al datasource en lugar de un Table, que es como supongo que estas haciendo. Al poner un table le estas indicando que coja una tabla en concreto y todos sus datos.

Al usar una query, en su propiedad SQL puedes asignarle una sentencia SQL directamente y así poder filtrar los datos deseados para que se te muestren en el dbgrid.

Espero te sirva.

Saludos

Sotrono 13-04-2006 01:45:08

Hola , en el DBGrid en si no hay que cambiar nada. El componente lo unico que hace es mostrar los datos del DataSet. Lo que tenes que hacer es filtrar la "fuente" de donde el DBGrid saca los datos, o sea la Tabla. Lo podes hacer con las propiedades Filtered y Filter de la tabla, o mediante SQL:
Código SQL [-]
SELECT * FROM Contactos WHERE Nombre = "Pepe"
En este caso te va a mostrar todos los registros de la tabla Contactos cuyo nombre sea Pepe. No se que componente estas usando, pero para poder hacer consultas SQL tenes que trabajar con un TQuery, o TAdoQuery, depende de la Base de datos con la que estas trabajando.
El codigo en Delphi para realizar esta consulta sería asi:
Código Delphi [-]
Query1.Close:
Query1.SQL.Text := 'SELECT * FROM Contactos WHERE Nombre = "Pepe"';
Query1.Open;
Tambien podes hacer que te seleccione los campos que solo comienzan con la letra "P":
Código SQL [-]
SELECT * FROM Contacto WHERE Nombre LIKE ("P%")
Con SQL podes realizar consultas de todo tipo, en Google vas a encontrar muchos manuales, si tenes alguna duda no dudes en preguntar.

Bytes...

amadis 13-04-2006 02:07:55

Filtros
 
O bien si no sabes la sintaxis SQL puedes utilizar la propiedad Filtered en true
y pasarle un criterio a filtrar a la funcion Filter.

Eso te reduce la tabla a lo que entre en el criterio

Por ejemplo si tienes una tabla Clientes con un campo Nombre y quieres ir Buscando o filtrando nombres esta seria una silucion

Código Delphi [-]
var criterio : string;
edit1 : tEdit // el edit estara definido en el encabezado del form

{ la variable criterio se define como local a un procedimiento por ej el ONCHANGE de un edit}

criterio := edit1.text; // le pasamos el valor del edit a la variable criterio

Clientes.Filter := 'Nombre = ''' + criterio +''''; // se filtra por el criterio
Clientes.Filtered := true; // y se activa el filtro para que funcione

// Y las 3 lineas de arriba la colocas en el OnChange del Edit

De esa forma tienes un Edit que al ir tipeando por ejemplo apellidos te filtre la tabla.

Al presionar PEREZ te mostrara todos los perez que haya.

Jheysson13 13-04-2006 18:31:03

muchas gracias a todos por las explicacion me fueron de mucha ayuda para mi consultas
saludos para todos.


La franja horaria es GMT +2. Ahora son las 01:33:53.

Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi