Ícone do site Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Data ETL: Adicionando LiveBindings personalizados aos seus aplicativos

pexels hitesh choudhary 879109

No recente episódio TCoffeeAndCode focado em Data ETL, houve uma excelente discussão sobre o uso de FireDAC para extrair e manipular dados de várias maneiras.

O replay, caso você tenha perdido, o vídeo do replay está no link abaixo.

Data ETL feito de maneira fácil – graças a um tweet!

Também – entre muitas outras coisas – falamos sobre os benefícios do LiveBindings. Literalmente dez minutos antes de começarmos o webinar, encontrei um tweet do recém-criado MVP da Embarcadero David Cornelius, onde ele mencionou que estava fazendo experiências com LiveBindings do RAD Studio.

Bem, isso foi perfeitamente sincronizado! David continua em sua postagem no blog para descrever um pouco sobre LiveBindings e sua jornada pessoal onde ele foi, não muito diferente de mim, de um sentimento de morna complacência em relação a eles para uma apreciação dos pontos mais delicados de seu uso.

LiveBindings são mais poderosos do que parecem

Quando ouvi falar do LiveBindings pela primeira vez, eles pareciam, para mim, ser algum tipo de variação do relacionamento antigo datasource datafieldtipo encontrado em versões mais antigas do Delphi e do venerável Visual Basic. Pareciam que deveríamos vincular os controles na tela a um campo (ou campos) de uma tabela de banco de dados, embora com um editor gráfico de relacionamento mais bonito.

Depois de começar a arranhar a superfície do LiveBindings, se você for como eu, o LiveBindings começará a se revelar gradualmente e você descobrirá que há MUITO mais poder acontecendo do que simplesmente apontar este campo para este tipo de controle de relacionamentos. Vincular controles a classes e estruturas de dados de código interno é um dos recursos do Programmer Super Power RAD Studio que fico dizendo às pessoas que é o motivo pelo qual um programador preguiçoso como eu pode ser assustadoramente produtivo. Não sou eu, é o RAD Studio e, pelo menos no meu caso, o Delphi.

Data ETL com LiveBinding Expressions

Existem alguns outros excelentes artigos em torno dos quais descrevem LiveBindings desde o início até tópicos mais avançados:

Mas David Cornelius abraçou a ideia do LiveBindings e foi um pouco mais longe!

Como estender LiveBindings com expressões de vinculação personalizadas

David produziu um conjunto de código, disponível no GitHub, que adiciona algumas expressões personalizadas no editor LiveBindings.

O repositório contém um conjunto de unidades que podem ser incluídas em seus aplicativos que, em seguida, aprimoram as expressões personalizadas LiveBinding disponíveis para incluir coisas como calcular automaticamente os anos desde a data contida no campo do banco de dados (ou registro ou classe – é um LiveBinding, não esquecer).

Expressão personalizada de LiveBindings

Aqui estão algumas linhas de código de exemplo do repositório de David:

[crayon-673a1df251123914924012/]

Esse código significa que você pode adicionar uma expressão personalizada LiveBinding MinutesSince(MyDateTimeDBField, 2)para gerar o valor de “MyDateTimeDBField” como o número de minutos desde a data e hora contidos nesse campo. Muito agradável.

Formas alternativas de calcular datas e horas em LiveBindings

David usa algum código bastante eficiente em seus métodos de expressão personalizados. Se incluirmos a System.DateUtilsunidade em nosso próprio código, poderemos alterar e / ou estender as funções de David para incluir quase qualquer um dos cálculos de data / hora contidos nessa unidade, quando apropriado. Por exemplo, poderíamos criar uma função chamada “IsAM” e vinculá-la à IsAM função na unidade DateUtils e fazer com que ela mostrasse algum texto especial se o campo datetime vinculado fosse ou não fosse de manhã ou à tarde.

Os RAD Studio LiveBindings são eficientes?

É claro que quanto mais funções você adicionar e quanto mais unidades incluir, mais seu código aumentará, então use-os com moderação. Você também precisa se certificar de que suas expressões personalizadas são tão rígidas e rápidas quanto possível, porque elas estão vinculadas e trabalhando em campos ou estruturas do banco de dados e você pode, é claro, esperar que um LiveBinding lento e personalizado afetará a ineficiência geral se você estiver lidando com milhares ou talvez dezenas de milhares de registros.

Onde ler mais sobre LiveBindings personalizados

Você definitivamente tem que ir para o excelente artigo do blog de David Cornelius sobre as ligações dinâmicas personalizadas: https://corneliusconcepts.tech/beyond-standard-livebindings

Você também pode acessar a página do GitHub e clonar o repositório diretamente de lá: https://github.com/corneliusdavid/LiveBindingsBeyond

No momento em que este artigo é escrito, David ainda não aparece no diretório MVP do Embarcadero, mas aparecerá em breve. Mal posso esperar para ver mais do que ele vai inventar!


O RAD Studio Delphi torna a extração, transformação e carregamento de dados – Data ETL – rápida, eficiente e fácil. Por que não baixar uma cópia de avaliação hoje?

Sair da versão mobile