sábado, 21 de abril de 2012

Copiar registros de um ClientDataSet filtrado sem precisar varrê-lo

Introdução

Olá amigos, o blog está de volta e venho com uma dica que já precisei utilizar algumas vezes e que pode ser útil.

Muitas vezes precisamos copiar os dados filtrados de um ClientDataSet(CDS) para outro, mas vemos que a propriedade DATA do CDS guarda TODOS os dados do CDS desconsiderando o filtro, assim como a propriedade XMLDATA, já o CLONECURSOR não cria uma cópia do DATA, ele apenas aponta para o mesmo DATA do CDS filtrado.
Como tempo é dinheiro, acabamos varrendo o CDS e copiando os dados filtrados para outro CDS. Nada elegante, mas funciona.

Uma solução para este problema é utilizar o método SETPROVIDER do CDS para 'copiar' apenas o DATA filtrado de um CDS para outro, veremos abaixo um exemplo prático.

quinta-feira, 9 de junho de 2011

Relacionamento Master Detail utilizando DataSetField

Nesse artigo vou mostrar como criar um relacionamento Master/Detail utilizando o recurso DataSetField do ClientDataSet.
Para podermos criar no Delphi uma relação Master/Detail em uma única estrutura de memória, devemos utilizar datasets aninhados, ou seja, o resultset traz em um dataset os TFields da tabela master e um TField expecial chamado TDataSetField, que representara a tabela detail.
Para podemos acessar o conteúdo de um TDataSetField, devemos usar a propriedade DataSetField de um componente dataset(no nosso caso o ClientDataSet).

Irei mostrar através de uma aplicação simples, como fazer esse relacionamento utilizando os recursos do dbexpress e do ClientDataSet.

Vamos à prática:

domingo, 1 de maio de 2011

Rotinas de arredondamento: Round, RoundTo, SimpleRoundTo, SetRoundMode e GetRoundMode

Como falei no artigo sobre Rotinas matemáticas para manipulação numérica estarei hoje falando das rotinas nativas do Delphi para arredondamento.
É comum na vida do programado deparar-se com situações em que necessite arredondar um determinado valor, ou utilizando o arredondamento para cima ou o arredondamento do banqueiro e ainda definir a quantidade de casas decimais, isso se for ter casas decimais. O que alguns não sabem é que o Delphi oferece suporte para estas formas de arredondamento, basta um pouco de dedicação para entendermos melhor a forma de configurar e o comportamento dessas rotinas.
São elas: Round(), RoundTo(), SimpleRoundTo(), SetRoundMode() e GetRoundMode().
Abordarei agora cada uma de forma conceitual e prática:

quarta-feira, 27 de abril de 2011

Certificação Delphi

Boa notícia para os desenvolvedores Delphi, depois de alguns anos sem programas de certificação o Delphi voltará a ter, essa informação foi passada pelo Andreano Lanusse Gerente da linha de Produtos Embarcadeiro Technologies através de seu blog. Para os interessados o programa se encontra em fase beta e as certificações serão dividas em Developer e Master, onde a Delphi EX Developer testará os conhecimentos nos fundamentos da linguagem Delphi e a Delphi EX Master testará o verdadeiro domínio em Delphi.
Fica o meu agradecimento e de vários outros desenvolvedores que pretendem se certificar para um melhor posicionamento no mercado e/ou testar seus conhecimentos da tecnologia à Embarcadeiro Technologies por essa iniciativa.
Agora é aguardar!

sexta-feira, 22 de abril de 2011

Rotinas matemáticas para manipulação numérica

Boa Tarde!

Vou tentar agrupar nessa postagem as principais rotinas de manipulação numérica que o Delphi possui. São rotinas simples mas de grande utilidade.
Fica a fonte de consulta, tanto pra quem está iniciando quanto para quem não guarda o NomexUtilidade de todas rotinas na memória.
Vou abordar cada rotina de forma teórica e prática.

Begin

Boa Tarde!

Na intenção de ajudar e aprendermos juntos, resolvi criar esse blog para compartilhar conhecimentos sobre Delphi e Firebird.