мини -орм для Delphi
Библиотека является экспериментом с RTTI и генериками, чтобы получить простой, объектно-ориентированный доступ к данным из реляционной базы данных.
var
ORM : TransfORM;
begin
ORM := TransfORM.Create();
Второй шаг - определить интерфейс в соответствии с формулой:
I[TableName] = interface(ItransfORMEntity)
function [ColumnNameA] : TransfORMField;
function [ColumnNameB] : TransfORMField;
function [ColumnNameC] : TransfORMField;
[...]
end;
... где имя таблицы - это имя таблицы в базе данных и ColumnName, ColumnNameb и т. Д. - это имена столбцов, к которым вы хотите получить доступ в данном интерфейсе (они не должны быть все).
Последним шагом является получение экземпляра интерфейса, содержащего данные определенной строки из таблицы. Для этого мы называем метод GetInstance, давая значение первичного ключа.
var
Entity : I[TableName];
PKValue : Integer;
begin
PKValue := 100; //primary key value
Entity := ORM.GetInstance<I[TableName], [PKType]>(PKValue, FDConnection);
В дополнение к доступу к полям таблицы, класс объектов также реализует методы из интерфейса:
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;
Текущие ограничения:
Библиотека использует: Spring4d, FireDac