DBHelpers 3
Acabo de publicar uma nova versão de DBHelpers. A versão 3 resolve alguns bugs de TRecordEnumerator e adiciona o novo método Restore.
Se você acompanhou o histórico da unit DBHelpers, sabe que o objetivo de TRecordEnumerator é percorrer todo o dataset (opcionalmente filtrado) restaurando automaticamente ao final as propriedades Active, Filter e Filtered, além de desabilitar os controles durante o loop e reposicionar o dataset para o registro corrente no início.
Usando a interface IRecordEnumerator, você não precisa se preocupar em liberar da memória o objeto enumerador e nem em restaurar o estado do dataset, o que é feito automaticamente pelo método Destroy quando a interface sai do escopo. O novo método público Restore permite você antecipar esse momento de restauração de forma mais legível. A única alternativa anteriormente era desalocar explicitamente a interface atribuindo “nil” à variável.
O exemplo abaixo constrói uma string com todos os valores de Fields[1] separados por vírgula. Observe que um objeto é instanciado e atribuido a uma variável interface, sendo automaticamente desalocado pelo compilador.
var Records: IRecordEnumerator; // interface S: String; begin S: String; Records := TRecordEnumerator.Create(ClientDataSet1); // classe while Records.MoveNext do S := S + ClientDataSet1.Fields[1].AsString + ','; Records.Restore; end;
Fique claro que não é necessário chamar Restore a não ser que você precise restaurar o dataset antes de sair do escopo da rotina que alocou a variável interface.
Comments
One Response to “DBHelpers 3”
Deixe uma Resposta

Parabéns, múito interessante sua unit, teria mais alguma documentação além dos três posts no seu blog???
falowww