sexta-feira, 21 de junho de 2019

DataSet Helper

Exemplo de como usar variants para iterar um DataSet e simplificar o acesso aos campos. Cada registro do DataSet é acessado por uma variant, promovendo acesso aos campos através do acesso direto a propriedades nomeadas, técnica conhecida como "late-binding". O acesso ao registro do DataSet através de uma variant é feito por um "class helper".

Operações em variants são mais lentas do que em tipos com ligações estáticas, além de consumir mais memória, então deve-se garantir que o cenário da sua aplicação não seja afetado pelo baixo desempenho.

O código fonte está disponível no link: https://drive.google.com/open?id=10muAtIcCyR0Y4i3T3c25r-XaFeTi8QIx

Ex:

procedure TDatSSample.Sample;
var
  LDatS: TDataSet;
  LRec: variant;
  LId: integer;
  LName: string;
  LAge: integer; 
begin
  [...]
  for LRec in LDatsS do begin
    LId := LRec.ID;
    LName := LRec.NAME;
    LAge := LRec.AGE;
    WriteLn(Format('ID: %d Nome: %s Idade: %d', [LId, LName, LAge]));
  end;
end;

Um comentário: