Site icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Data ETL: добавление пользовательских привязок LiveBindings к вашим приложениям

pexels hitesh choudhary 879109

В недавнем эпизоде TCoffeeAndCode, посвященном Data ETL, было отличное обсуждение использования FireDAC для извлечения данных и управления ими различными способами.

Повтор, если вы его пропустили, ссылка на видео воспроизведения приведена ниже.

Data ETL стал простым способом — благодаря твиту!

Мы также — среди прочего — говорили о преимуществах LiveBindings. Буквально за десять минут до того, как мы должны были начать вебинар, я наткнулся на твит от новоиспеченного MVP Embarcadero Дэвида Корнелиуса, в котором он упомянул, что экспериментировал с LiveBindings RAD Studio.

Что ж, это было как раз вовремя! Дэвид продолжает в своем сообщении в блоге немного описать LiveBindings и свой личный путь, в котором он прошел, как и я, от чувства теплого самодовольства по отношению к ним до признания тонкостей их использования.

LiveBindings мощнее, чем кажется

Когда я впервые услышал о LiveBindings, мне показалось, что они представляют собой своего рода вариацию старых datasource datafieldвид отношений, обнаруженных в старых версиях Delphi и почтенном Visual Basic. Они выглядели так, как будто мы должны связать элементы управления на экране с полем (или полями) таблицы базы данных, хотя и с более красивым графическим редактором отношений.

Как только вы начнете царапать поверхность LiveBindings, если вы хоть немного похожи на меня, LiveBindings начнут постепенно раскрывать себя, и вы обнаружите, что существует НАМНОГО больше возможностей, чем простое указание поля для этого типа управления. отношений. Связывание элементов управления с классами и внутренними структурами данных кода — одна из тех функций Programmer Super Power RAD Studio, которые, как я постоянно говорю, являются причиной того, почему такой ленивый программист, как я, на самом деле может быть пугающе продуктивным. Это не я, это RAD Studio и, по крайней мере, в моем случае Delphi.

ETL данных с выражениями LiveBinding

Есть еще несколько замечательных статей, в которых описываются LiveBindings от начального этапа до более сложных тем:

Но Дэвид Корнелиус принял идею LiveBindings и пошел немного дальше!

Как расширить LiveBindings с помощью пользовательских выражений привязки

Дэвид создал набор кода, доступного на GitHub, который добавляет некоторые пользовательские выражения в редактор LiveBindings.

Репозиторий содержит набор единиц, которые могут быть включены в ваши приложения, которые затем расширяют доступные пользовательские выражения LiveBinding, включая такие вещи, как автоматическое вычисление лет с даты, содержащейся в поле базы данных (или записи или классе — это LiveBinding, не надо) забываю).

Пользовательское выражение LiveBindings

Вот несколько строк кода из репозитория Дэвида:

[crayon-676891031523c694546605/]

Этот код означает, что вы можете добавить настраиваемое выражение LiveBinding MinutesSince(MyDateTimeDBField, 2)для вывода значения MyDateTimeDBField в виде количества минут с даты и времени, содержащихся в этом поле. Очень хорошо.

Альтернативные способы расчета даты и времени в LiveBindings

Дэвид использует довольно эффективный код в своих методах пользовательских выражений. Если мы включим System.DateUtilsмодуль в наш собственный код, мы сможем изменить и / или расширить функции Дэвида, включив почти любые вычисления даты / времени, содержащиеся в этом модуле, где это необходимо. Например, мы могли бы создать функцию под названием «IsAM» и связать ее с IsAM функцией в модуле DateUtils и заставить ее отображать некоторый специальный текст, если связанное поле datetime было или не было утром или днем.

Эффективны ли привязки RAD Studio LiveBindings?

Конечно, чем больше функций вы добавляете и чем больше модулей вы включаете, тем больше раздувается ваш код, поэтому используйте их экономно. Вам также необходимо убедиться, что ваши пользовательские выражения являются максимально точными и быстрыми, поскольку они связываются и работают с полями или структурами базы данных, и вы, конечно, можете ожидать, что медленная пользовательская привязка LiveBinding повлияет на общую неэффективность, если вы имея дело с тысячами, а может, и с десятками тысяч записей.

Где узнать больше о пользовательских привязках LiveBindings

Вам обязательно нужно прочитать отличную статью в блоге Дэвида Корнелиуса о пользовательских привязках в реальном времени: https://corneliusconcepts.tech/beyond-standard-livebindings

Вы также можете перейти на его страницу GitHub и клонировать репо прямо оттуда: https://github.com/corneliusdavid/LiveBindingsBeyond

На момент написания статьи Дэвид еще не появился в каталоге Embarcadero MVP, но скоро появится. Не могу дождаться, чтобы увидеть больше того, что он придумывает!


RAD Studio Delphi делает извлечение, преобразование и загрузку данных — Data ETL — быстрым, эффективным и простым. Почему бы не скачать пробную копию сегодня?

Exit mobile version