Curso de dbExpress e DataSnap
Parte VII – Índices em memória
A partir desta parte do curso, vamos conhecer algumas técnicas avançadas de desenvolvimento com dbExpress e DataSnap, principalmente através do componente ClientDataSet.
O exemplo apresentado neste artigo mostra como definir índices em memória para o ClientDataSet. Para isso, basta setar a propriedade IndexFieldNames (para criar índices mais personalizados use a propriedade IndexDefs e IndexName). Não é necessário criar arquivos de índices como no Paradox ou refazer a consulta SQL no banco.
Inicie uma nova aplicação Delphi VCL e coloque no formulário principal coloque um ComboBox, Label, ClientDataSet, DataSource e DBGrid, fazendo as ligações como mostrado abaixo:
object ClientDataSet1: TClientDataSet
end
object DataSource1: TDataSource
DataSet = ClientDataSet1
end
object DBGrid1: TDBGrid
DataSource = DataSource1
end
Dê um clique de direita no ClientDataSet, escolha Load from MyBase Table e abra o arquivo Customer.XML, localizado nos demos do Delphi, por padrão no diretório:
C:\Arquivos de programas\Arquivos comuns\Borland Shared\Data
Seu formulário deve estar semelhante ao mostrado a seguir:
Figura 1.
No evento OnCreate do formulário digite:
procedure TFrmMain.FormCreate(Sender: TObject);
begin
ClientDataSet1.GetFieldNames(ComboBox1.Items);
end;
Isso preenche o Combo com a lista de campos disponíveis no ClientDataSet.
Figura 2.
No evento OnChange do Combo, ordenamos o ClientDataSet através do campo que o usuário selecionou:
procedure TFrmMain.ComboBox1Change(Sender: TObject);
begin
ClientDataSet1.IndexFieldNames := ComboBox1.Text;
end;
Fazemos isso também no OnTileClick do DBGrid, para ordenar o DataSet conforme a coluna clicada no grid:
procedure TFrmMain.DBGrid1TitleClick(Column: TColumn);
begin
if Assigned(OldColumn) then
OldColumn.Title.Color := DBGrid1.FixedColor;
ClientDataSet1.IndexFieldNames := Column.FieldName;
Column.Title.Color := $00408080;
OldColumn := Column;
end;
A figura a seguir mostra a aplicação em execução, observe o efeito de cor que colocamos na coluna:
Figura 3.
Download
dbExpress, DataSnap e ClientDataSet: Técnicas Avançadas
Para mais informações sobre acesso a dados no Delphi e técnicas avançadas, sugiro a leitura do meu livro, “Delphi: Programação para Banco de Dados e Web”, como apoio para o aprendizado das tecnologias. Na obra mostro várias técnicas introdutórios e avançadas de desenvolvimento com ClientDataSet, dbExpress e DataSnap (multicamadas, incluindo SOAP e COM+). Para mais informações, consulte o link http://www.clubedelphi.net/guinther
Leia todos artigos da série
- Curso de dbExpress e DataSnap
- Curso de dbExpress e DataSnap - Parte II
- Curso de dbExpress e DataSnap - Parte III
- Curso de dbExpress e DataSnap - Parte IV
- Curso de dbExpress e DataSnap - Parte V
- Curso de dbExpress e DataSnap - Parte VI
- Curso de dbExpress e DataSnap - Parte VII
- Curso de dbExpress e DataSnap - Parte VIII
- Curso de dbExpress e DataSnap - Parte IX
- Curso de dbExpress e DataSnap - Parte X
- Curso de dbExpress e DataSnap - Parte XI
- Curso de dbExpress e DataSnap - Parte XII
- Curso de dbExpress e DataSnap - Parte XIII
- Curso de dbExpress e DataSnap - Parte XIV
- Curso de dbExpress e DataSnap - Parte XV
- Curso de dbExpress e DataSnap - Parte XVI
- Curso de dbExpress e DataSnap - Parte XVII
- Curso de dbExpress e DataSnap - Parte XVIII
- Curso de dbExpress e DataSnap - Parte XIX
- Curso de dbExpress e DataSnap - Parte XX
- Curso de dbExpress e DataSnap - Parte XXI
- Curso de dbExpress e DataSnap - Parte XXII
- Curso de dbExpress e DataSnap - Parte XXIII
- Curso de dbExpress e DataSnap - Parte XXIV
- Curso de dbExpress e DataSnap - Parte XXV
- Curso de dbExpress e DataSnap - Parte XXVI
- Curso de dbExpress e DataSnap - Parte XXVII
- Curso de dbExpress e DataSnap - Parte XXVIII
- Curso de dbExpress e DataSnap - Parte XXIX
- Curso de dbExpress e DataSnap - Parte XXX