Mini Orm pour Delphi
La bibliothèque est une expérience avec RTTI et génériques pour obtenir un accès simple et orienté objet aux données d'une base de données relationnelle.
var
ORM : TransfORM;
begin
ORM := TransfORM.Create();
La deuxième étape consiste à définir l'interface en fonction de la formule:
I[TableName] = interface(ItransfORMEntity)
function [ColumnNameA] : TransfORMField;
function [ColumnNameB] : TransfORMField;
function [ColumnNameC] : TransfORMField;
[...]
end;
... où TableName est le nom de la table dans la base de données et Columnmeaa, ColumnnameB, etc. sont les noms des colonnes auxquelles vous souhaitez accéder dans l'interface donnée (ils n'ont pas à être tout).
La dernière étape consiste à obtenir une instance d'interface contenant les données d'une ligne spécifique à partir du tableau. Pour ce faire, nous appelons la méthode GetInstance, donnant la valeur de la clé primaire.
var
Entity : I[TableName];
PKValue : Integer;
begin
PKValue := 100; //primary key value
Entity := ORM.GetInstance<I[TableName], [PKType]>(PKValue, FDConnection);
En plus de l'accès aux champs de table, la classe d'entité implémente également les méthodes de l'interface:
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;
Limites actuelles:
La bibliothèque utilise: Spring4d, Firedac