transfORM
1.0.0
デルファイのミニorm
ライブラリは、RTTIとジェネリックを使用した実験であり、リレーショナルデータベースからのデータへのシンプルでオブジェクト指向のアクセスを獲得しています。
var
ORM : TransfORM;
begin
ORM := TransfORM.Create();
2番目のステップは、式に従ってインターフェイスを定義することです。
I[TableName] = interface(ItransfORMEntity)
function [ColumnNameA] : TransfORMField;
function [ColumnNameB] : TransfORMField;
function [ColumnNameC] : TransfORMField;
[...]
end;
... TableNameはデータベースとcolumnnamea、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を使用しています