Foros Club Delphi

Foros Club Delphi (https://www.clubdelphi.com/foros/index.php)
-   Varios (https://www.clubdelphi.com/foros/forumdisplay.php?f=11)
-   -   Problema con DBGrid, no bases de datos (https://www.clubdelphi.com/foros/showthread.php?t=22593)

Essato 21-06-2005 04:04:31

Problema con DBGrid, no bases de datos
 
Hi, bien, tengo un pequeño problema con este componente, ya funciona todo correcto, muestra los datos de una consulta SQL (con zeoslib), mediante un datasource, claro, el problema es que quiero saber:

a) saber que una de las filas esta seleccionada (ni más ni menos)
b) obtener el dato de una columna de la fila seccionada

mmm, si no me explique, decidme.

De antemano, gracias!.

roman 21-06-2005 05:15:13

Cita:

Empezado por Essato
si no me explique, decidme.

Te lo digo.

¿Qué significa eso de "no bases de datos" en el título? Difícilmente usarás un DBGrid sin una base de datos.

1. ¿Quieres saber qué fila está selecionada o si hay una fila seleccionada?

A menos que el dataset esté vacío, siempre hay una fila seleccionada.

Un DBGrid se usa para mostrar infromación más no realmente para obtener información. Lo recomendable es usar el dataset asociado. El dataset siempre apuntará al registro seleccionado en el DBGrid y obtienes los valores de sus campos con los métodos FieldByName('campo').AsXXX.

// Saludos

Essato 21-06-2005 05:35:40

hola, gracias por ayudar, a lo de "no bases de datos" me referia que todo funciona correctamente en ese aspecto (query<->dataset<->dbgrid), el detalle era que si una fila esta seleccionada y tiene campos digamos:

ID, titulo, otro

con sus respectivos valores para esos campos:

5, 'este titulo', 'otra cosa'

Cómo obtengo el valor correspondiente a 'ID' de la fila seleccionada, en el caso anterior '5'??

roman 21-06-2005 05:42:24

Cita:

Empezado por Essato
Cómo obtengo el valor correspondiente a 'ID' de la fila seleccionada, en el caso anterior '5'??

Pues ya te lo he dicho:

Dataset.FieldByName('ID').AsInteger;

en tu caso DataSet es el Query.

// Saludos

Essato 21-06-2005 06:56:57

gracias socio, pero por casualidad, no es posible hacer esto desde el mismo dbgrid?

algo como
variable:=dbgrid1.selectedrow.field[0];

Gracias!.

frudolph 21-06-2005 13:56:10

Cita:

Empezado por Essato
gracias socio, pero por casualidad, no es posible hacer esto desde el mismo dbgrid?

algo como
variable:=dbgrid1.selectedrow.field[0];

Gracias!.

Puedes probar con algo como esto:

Variable := DBGrid1.SelectedField.DataSet.Fields[0].AsString;

- DBGrid1.SelectedField.AsString --> Te devuelve el valor de la celda seleccionada
- DBGrid1.SelectedField.AsString.DataSet --> Te devuelve el DataSet (posicionado en la fila seleccionada)

Otra alternativa es utilizar la propiedad SelectedRows (te aconsejo veas el ejemplo que trae la ayuda de Delphi). Este último trabaja junto con la propiedad Bookmark.

Essato 21-06-2005 18:14:10

Cita:

Empezado por frudolph
Puedes probar con algo como esto:

Variable := DBGrid1.SelectedField.DataSet.Fields[0].AsString;

- DBGrid1.SelectedField.AsString --> Te devuelve el valor de la celda seleccionada
- DBGrid1.SelectedField.AsString.DataSet --> Te devuelve el DataSet (posicionado en la fila seleccionada)

Otra alternativa es utilizar la propiedad SelectedRows (te aconsejo veas el ejemplo que trae la ayuda de Delphi). Este último trabaja junto con la propiedad Bookmark.

:D :D :D :D :D :D :D :D :D Justo lo que necesitaba!, Gracias!!.


La franja horaria es GMT +2. Ahora son las 20:56:26.

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