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)
-   -   DBGrid y Registros (https://www.clubdelphi.com/foros/showthread.php?t=4412)

pablo 15-10-2003 01:52:51

DBGrid y Registros
 
hola:


1) Si yo tengo un bdGrid, y hago click en una celda..., como puedo obtener el ID
de esa celda que clickee?
Aclaro que yo quiero obtenerlo desde FUERA del manejador del evento onCellClick,
pues dentro de ese metodo, se que lo puedo obtener sin problemas



2) hay manera de acceder los registros de una base como un array?

saludos
pablo

roman 15-10-2003 02:58:31

1) ¿A qué te refieres con el id de una celda?
2) No que yo sepa. Normalmente no es así ya que esto significaría que estás basando tu acceso a las tablas dependiendo de su posición física en la base y esto no es recomendable pues puede variar por varias circunstancias. Por lo general es mejor acceder a los datos localizándolos por medio de alguna clave. Lo más cercano que conozco-- y no funcionará en todo tipo de tablas -- es usando la propiedad RecNo para mover el cursor de la tabla directamente al registro deseado pero, repito, no todos los motores de bases de datos te permitirán esto.

Ahora bien, si el motor que use lo permite y estás seguro de querer algo así podrías intentar crear una clase descendiente de TTable o TQuery por ejemplo que te dé el acceso que quieres:

Código:

type
  TExTable = class(TTable)
  private
    function GetRecord(Col, Row: Integer): TField;

  public
    property Records[Col, Row: Integer]: TField;
  end;

implementation

function TExTable.GetRecords(Col, Row: Integer): TField;
begin
  RecNo := Row;
  Result := Fields[Col];
end;

Y accederías a los registros así (por ejemplo):

Código:

ExTable.Records[Columna, Renglon].AsString := 'Hola';
Variable := ExTable.Records[Columna, Renglon].AsString;

Y si a la propiedad Records le agregas el atributo default podrás simplificarlo así

Código:

ExTable[Columna, Renglon].AsString := 'Hola';
Variable := ExTable[Columna, Renglon].AsString;

// Saludos


La franja horaria es GMT +2. Ahora son las 18:43: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