quarta-feira, 24 de janeiro de 2007

Uma forma inteligente de abrir um DataSet em Delphi

Em nossos aplicativos Delphi sempre temos muitas linhas de códigos repetidas para fechar DataSet, passar parâmetros e abrir novamente. Para reduzir um pouco o código digitado e o tempo de digitação; e ainda deixar o código mais limpo, legível e bonito, vamos implementar um método padrão de abrir DataSet passando os parâmetros.

Primeiro o Gerson construiu métodos com sobrecarga para cobrir os diferentes casos. A idéia já era ótima, mas nós acabamos juntos chegando a esta 'ultimate' solução Hehe.

Este método deve ser um procedimento global ou um método público de um objeto:

procedure AbrirDataSet(DataSet: TDataSet; Parametros: array of Variant);
var
i: Integer;
begin
DataSet.Close;
for i := 0 to Pred(Length(Parametros)) do
DataSet.Params[i].Value := Parametros[i];
DataSet.Open;
end;


Pronto. Simples, não :)

Lembrando: na unit em que este método for declarado tem que ter as units DB e Variants na cláusula uses

O parâmetro DataSet representa o DataSet que vai ser usado - Pode ser qualquer classe derivada de TDataSet (como TClientDataSet, TADODataSet, TBDEDataSet, etc...).

O Parâmetro Parametros é um array contendo os valores dos parâmetros que serão passados para o DataSet. Detalhe: os parâmetros devem ser passados na mesma ordem que está na propriedade Params do DataSet.

Pronto. Agora na aplicação ao invés de ter no mínimo 3 linhas de código para abrir o DataSet só precisa uma:

AbrirDataSet(CdsProdutos, [EditDescricao.Text]);


O exemplo acima vai passar o valor do EditDescricao para o primeiro parâmetro do DataSet CdsProdutos e vai abrir o DataSet.

Para mais parâmetros é só separá-los com vírgulas dentro dos colchetes - Os colchetes são necessários porque o parâmetro é um array.

Então é isso. Divirtam-se e procurem sempre maneiras de fazer o menor e mais bonito código possível. Abraços.

Um comentário:

  1. Excelente artigo. Ajudou MUITO!!!
    Parabéns.
    Paulo Cesar

    ResponderExcluir