Website-Icon Embarcadero RAD Studio, Delphi, & C++Builder Blogs

Data ETL: Hinzufügen von benutzerdefinierten LiveBindings zu Ihren Apps

pexels hitesh choudhary 879109

In der jüngsten TCoffeeAndCode- Episode mit dem Schwerpunkt Data ETL gab es einige ausgezeichnete Diskussionen über die Verwendung von FireDAC zum Extrahieren und Bearbeiten von Daten auf verschiedene Weise.

Die Wiederholung, falls Sie sie verpasst haben, ist das Wiederholungsvideo unten verlinkt.

Data ETL leicht gemacht – dank Tweet!

Wir haben – unter anderem – auch über die Vorteile von LiveBindings gesprochen. Buchstäblich zehn Minuten vor Beginn des Webinars stieß ich auf einen Tweet des frischgebackenen Embarcadero-MVP David Cornelius, in dem er erwähnte, dass er mit den LiveBindings von RAD Studio experimentiert hatte.

Nun, das war der perfekte Zeitpunkt! David fährt in seinem Blogbeitrag fort, ein wenig über LiveBindings und seine persönliche Reise zu beschreiben, auf der er, ähnlich wie ich, von einem Gefühl lauwarmer Selbstgefälligkeit ihnen gegenüber hin zu einer Anerkennung der Feinheiten ihrer Verwendung ging.

LiveBindings sind mächtiger als sie erscheinen

Als ich zum ersten Mal von LiveBindings hörte, schienen sie mir eine Art Variation der alten datasource datafieldArt der Beziehung zu sein, die in älteren Versionen von Delphi und dem ehrwürdigen Visual Basic gefunden wurde. Sie sahen so aus, als ob wir die Steuerelemente auf dem Bildschirm mit einem Feld (oder Feldern) einer Datenbanktabelle verknüpfen sollten, wenn auch mit einem schöneren grafischen Beziehungseditor.

Sobald Sie anfangen, an der Oberfläche von LiveBindings zu kratzen, werden LiveBindings, wenn Sie so etwas wie ich sind, sich allmählich offenbaren und Sie werden feststellen, dass viel mehr Leistung im Spiel ist, als nur auf diese Art von Steuerung zu zeigen von Beziehungen. Das Verknüpfen von Steuerelementen mit Klassen und internen Code-Datenstrukturen ist eine dieser Programmier-Superpower-Funktionen von RAD Studio, von denen ich immer wieder sage, dass ein ziemlich fauler Programmierer wie ich erschreckend produktiv sein kann. Ich bin es nicht, sondern RAD Studio und zumindest in meinem Fall Delphi.

Daten-ETL mit LiveBinding-Ausdrücken

Es gibt einige andere großartige Artikel, die LiveBindings von den ersten Anfängen bis hin zu fortgeschritteneren Themen beschreiben:

Aber David Cornelius hat die Idee von LiveBindings angenommen und ist noch ein bisschen weiter gegangen!

So erweitern Sie LiveBindings mit benutzerdefinierten Bindungsausdrücken

David hat einen auf GitHub verfügbaren Codesatz erstellt, der einige benutzerdefinierte Ausdrücke im LiveBindings-Editor hinzufügt.

Das Repository enthält eine Reihe von Einheiten, die in Ihre Apps aufgenommen werden können, die dann die verfügbaren benutzerdefinierten LiveBinding-Ausdrücke erweitern, um Dinge wie die automatische Berechnung der Jahre seit dem im Datenbankfeld enthaltenen Datum (oder Datensatz oder Klasse – es ist eine LiveBinding, nicht nicht vergessen).

Benutzerdefinierter LiveBindings-Ausdruck

Hier sind ein paar Zeilen Beispielcode aus Davids Repo:

[crayon-6741bdcc70363372775053/]

Dieser Code bedeutet, dass Sie einen benutzerdefinierten LiveBinding-Ausdruck hinzufügen können, um MinutesSince(MyDateTimeDBField, 2)den Wert von „MyDateTimeDBField“ als Anzahl der Minuten seit dem Datum und der Uhrzeit in diesem Feld auszugeben. Sehr schön.

Alternative Methoden zum Berechnen von Datum und Uhrzeit in LiveBindings

David verwendet in seinen benutzerdefinierten Ausdrucksmethoden ziemlich effizienten Code. Wenn wir die System.DateUtilsEinheit in unseren eigenen Code aufnehmen, könnten wir Davids Funktionen ändern und/oder erweitern, um fast alle in dieser Einheit enthaltenen Datums-/Uhrzeitberechnungen einzubeziehen, sofern dies angemessen ist. Zum Beispiel könnten wir eine Funktion namens „IsAM“ erstellen und sie mit der IsAM Funktion in der DateUtils-Unit verknüpfen und sie dazu bringen, einen speziellen Text anzuzeigen, wenn das verknüpfte Datumszeitfeld morgens oder nachmittags war oder nicht.

Sind RAD Studio LiveBindings effizient?

Je mehr Funktionen Sie hinzufügen und je mehr Einheiten Sie einschließen, desto mehr wird Ihr Code natürlich aufblähen. Verwenden Sie sie also sparsam. Sie müssen auch sicherstellen, dass Ihre benutzerdefinierten Ausdrücke so eng und so schnell wie möglich sind, da sie mit Datenbankfeldern oder -strukturen verknüpft sind und mit ihnen arbeiten Umgang mit Tausenden oder vielleicht Zehntausenden von Datensätzen.

Weitere Informationen zu benutzerdefinierten LiveBindings

Du musst auf jeden Fall zu David Cornelius‘ exzellentem Blog-Artikel über die Custom Live Bindings gehen: https://corneliusconcepts.tech/beyond-standard-livebindings

Sie können auch auf seine GitHub-Seite gehen und das Repo direkt von dort klonen: https://github.com/corneliusdavid/LiveBindingsBeyond

Zum Zeitpunkt des Schreibens taucht David noch nicht im Embarcadero MVP-Verzeichnis auf, aber er wird es bald tun. Ich kann es kaum erwarten, mehr von dem zu sehen, was er sich einfallen lässt!


RAD Studio Delphi macht die Datenextraktion, -transformation und das Laden – Data ETL – schnell, effizient und einfach. Warum nicht noch heute eine Testversion herunterladen?

Die mobile Version verlassen