Curso de dbExpress e DataSnap - ParteVII
Veja o neste artigo de Guinther Pauli, o sétimo capítulo do curso sobre dbExpress e DataSnap.
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
Você pode fazer download de todos os exemplos deste curso a partir do endereço http://cc.borland.com/Author.aspx?ID=222668. É preciso fazer o cadastro na BDN, que é gratuito e pode ser feito a partir do endereço http://bdn.borland.com
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

Curso(s):
Formações:
Space do autor


1
0
