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 21-06-2005
Essato Essato is offline
Miembro
 
Registrado: abr 2005
Posts: 24
Poder: 0
Essato Va por buen camino
Arrow 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!.
Responder Con Cita
  #2  
Antiguo 21-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #3  
Antiguo 21-06-2005
Essato Essato is offline
Miembro
 
Registrado: abr 2005
Posts: 24
Poder: 0
Essato Va por buen camino
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'??
Responder Con Cita
  #4  
Antiguo 21-06-2005
Avatar de roman
roman roman is offline
Moderador
 
Registrado: may 2003
Ubicación: Ciudad de México
Posts: 20.269
Poder: 10
roman Es un diamante en brutoroman Es un diamante en brutoroman Es un diamante en bruto
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
Responder Con Cita
  #5  
Antiguo 21-06-2005
Essato Essato is offline
Miembro
 
Registrado: abr 2005
Posts: 24
Poder: 0
Essato Va por buen camino
gracias socio, pero por casualidad, no es posible hacer esto desde el mismo dbgrid?

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

Gracias!.
Responder Con Cita
  #6  
Antiguo 21-06-2005
frudolph frudolph is offline
Miembro
 
Registrado: oct 2004
Posts: 40
Poder: 0
frudolph Va por buen camino
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.
Responder Con Cita
  #7  
Antiguo 21-06-2005
Essato Essato is offline
Miembro
 
Registrado: abr 2005
Posts: 24
Poder: 0
Essato Va por buen camino
Thumbs up

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.
Justo lo que necesitaba!, Gracias!!.
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


La franja horaria es GMT +2. Ahora son las 02:46:51.


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