![]() |
![]() |
| Paypal | FTP | CCD | Buscar | Trucos | Trabajo | Foros |
|
|||||||
| Registrarse | FAQ | Miembros | Calendario | Guía de estilo | Buscar | Temas de Hoy | Marcar Foros Como Leídos |
|
|
Herramientas | Buscar en Tema | Desplegado |
|
#12
|
|||
|
|||
|
En C++ Builder 6, para acceder a los campos de una fila específica en un DBGrid, puedes hacerlo a través del conjunto de datos (dataset) que está vinculado al DBGrid. El DBGrid está conectado a un TDataSource, el cual a su vez está vinculado a un TQuery, TTable, o cualquier otro componente de acceso a bases de datos. Los campos de los registros se gestionan mediante objetos TField.
Para acceder al valor de un campo desde el DBGrid, puedes seguir estos pasos: 1. Acceso directo a través de TQuery o TTable Si sabes qué campo específico deseas acceder, puedes utilizar el método FieldByName() o Fields[] del componente TQuery o TTable. Código:
AnsiString valorCampo = Query1->FieldByName("nombre_campo")->AsString;
2. Acceso desde el componente DBGrid El componente DBGrid no tiene acceso directo a los datos; sin embargo, puedes obtener los campos a través del conjunto de datos (DataSet) que está vinculado al TDataSource del DBGrid. Ejemplo Accediendo al Campo de la Fila Actual: Código:
void __fastcall TForm1::AccederCampoDesdeDBGrid()
{
// Obtener el conjunto de datos asociado al DBGrid
TDataSet *dataset = DBGrid1->DataSource->DataSet;
if (dataset->Active && !dataset->Eof)
{
// Obtener el valor del campo desde el dataset de la fila actual
AnsiString valorCampo = dataset->FieldByName("nombre_campo")->AsString;
ShowMessage("Valor del campo: " + valorCampo);
}
}
3. Acceso mediante SelectedField y SelectedRows Si deseas acceder al campo seleccionado en el DBGrid, puedes utilizar la propiedad SelectedField. Esto devuelve el campo de la columna actualmente seleccionada. Ejemplo usando SelectedField: Código:
void __fastcall TForm1::AccederCampoSeleccionado()
{
TField *campoSeleccionado = DBGrid1->SelectedField;
if (campoSeleccionado != NULL)
{
ShowMessage("Campo seleccionado: " + campoSeleccionado->FieldName +
"\nValor: " + campoSeleccionado->AsString);
}
else
{
ShowMessage("No hay ningún campo seleccionado.");
}
}
Si el DBGrid está en modo multiselección y deseas obtener datos de las filas seleccionadas, puedes iterar sobre las filas seleccionadas usando la propiedad SelectedRows. Ejemplo accediendo a campos de varias filas seleccionadas: Código:
void __fastcall TForm1::AccederCamposFilasSeleccionadas()
{
TDataSet *dataset = DBGrid1->DataSource->DataSet;
for (int i = 0; i < DBGrid1->SelectedRows->Count; i++)
{
// Ir a la fila seleccionada
dataset->GotoBookmark(DBGrid1->SelectedRows->Items[i]);
// Obtener el valor del campo en esa fila seleccionada
AnsiString valorCampo = dataset->FieldByName("nombre_campo")->AsString;
ShowMessage("Valor del campo en fila seleccionada: " + valorCampo);
}
}
Resumen: FieldByName(): Es la forma más común y directa de acceder a un campo por su nombre. DBGrid1->SelectedField: Para acceder al campo seleccionado en la columna actual. SelectedRows: Para acceder a campos de varias filas seleccionadas cuando el DBGrid está en modo multiselección. Con estos métodos, puedes acceder a los campos de un registro en un DBGrid y manejar los datos según sea necesario. |
| Herramientas | Buscar en Tema |
| Desplegado | |
|
|
Temas Similares
|
||||
| Tema | Autor | Foro | Respuestas | Último mensaje |
| Caracteres extraños en un Memo | Sr.Scorpion | Varios | 1 | 23-10-2008 19:54:59 |
| Caracteres extraños en un Memo | Sr.Scorpion | Varios | 6 | 23-10-2008 14:47:05 |
| Caracteres extraños (#$D#$A) | Iuconlas | Varios | 2 | 23-09-2005 17:09:05 |
| caracteres extraños en reportes | Tangela | Conexión con bases de datos | 0 | 21-01-2004 19:56:22 |
| Caracteres extraños | Germi | Conexión con bases de datos | 1 | 14-10-2003 15:26:18 |
|