Mini Orm für Delphi
Die Bibliothek ist ein Experiment mit RTTI und Generika, um einfachen, objektorientierten Zugriff auf Daten aus einer relationalen Datenbank zu erhalten.
var
ORM : TransfORM;
begin
ORM := TransfORM.Create();
Der zweite Schritt besteht darin, die Schnittstelle entsprechend der Formel zu definieren:
I[TableName] = interface(ItransfORMEntity)
function [ColumnNameA] : TransfORMField;
function [ColumnNameB] : TransfORMField;
function [ColumnNameC] : TransfORMField;
[...]
end;
... wobei TableName der Name der Tabelle in der Datenbank und in der Columnnamea, Columnnameb usw. ist, sind die Namen der Spalten, auf die Sie in der angegebenen Schnittstelle zugreifen möchten (sie müssen nicht alle sein).
Der letzte Schritt besteht darin, eine Schnittstelleninstanz zu erhalten, die die Daten einer bestimmten Zeile aus der Tabelle enthält. Dazu nennen wir die GetInstance -Methode und geben den Wert des Primärschlüssels an.
var
Entity : I[TableName];
PKValue : Integer;
begin
PKValue := 100; //primary key value
Entity := ORM.GetInstance<I[TableName], [PKType]>(PKValue, FDConnection);
Neben dem Zugriff auf die Tabellenfelder implementiert die Entitätsklasse auch Methoden aus der Schnittstelle:
ItransfORMEntity = interface(IInvokable)
function GetConnection(): TFDConnection;
function GetImmediateCommit(): Boolean;
function HasChanges() : Boolean;
function PrimaryKeyField() : TransfORMField;
procedure Commit(aInSubthread : Boolean = False);
procedure SetImmediateCommit(const aValue: Boolean);
property ImmediateCommit: Boolean read GetImmediateCommit write SetImmediateCommit;
property Connection: TFDConnection read GetConnection;
end;
Aktuelle Einschränkungen:
Die Bibliothek verwendet: Spring4d, Firedac