Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- unit Model.DAO.SimpleORM;
- interface
- uses
- Model.Conexoes.Interfaces, Model.DAO.Interfaces,
- ////////
- SimpleInterface, SimpleDAO, SimpleQueryFiredac,
- FireDAC.Comp.Client,
- ////////
- Data.DB, System.Classes, System.SysUtils, Vcl.Dialogs;
- type
- TModelDAO_SimpleORM<T : class, constructor> = class(TInterfacedObject, iModelDAO_SimpleORM<T>, iModelFiredacComponentes<TComponent>)
- private
- FDConexao: TComponent;
- FQuery : iSimpleQuery;
- FDAO : iSimpleDAO<T>;
- public
- constructor Create(Conexao : iModelConexao);
- destructor Destroy; override;
- class function New(Conexao : iModelConexao) : iModelDAO_SimpleORM<T>;
- function DataSet (aValue : TDataSource) : iModelDAO_SimpleORM<T>; overload;
- function DataSet (aValue : TDataSet) : iModelDAO_SimpleORM<T>; overload;
- function _this(Conexao : iModelConexao) : TComponent;
- function Find : iModelDAO_SimpleORM<T>;
- end;
- implementation
- { TModelDAO_SimpleORM<T> }
- constructor TModelDAO_SimpleORM<T>.Create(Conexao : iModelConexao);
- begin
- //a Conexao já vem pronta...kkkk
- FQuery := TSimpleQueryFiredac.New( _this(Conexao) as TFDConnection );
- FDAO := TSimpleDAO<T>.New(FQuery);
- end;
- destructor TModelDAO_SimpleORM<T>.Destroy;
- begin
- FreeAndNil(FDConexao);
- inherited;
- end;
- function TModelDAO_SimpleORM<T>._this(Conexao : iModelConexao): TComponent;
- begin
- FDConexao := TComponent.Create(nil);
- FDConexao := Conexao.Conection;
- Result := FDConexao;
- end;
- function TModelDAO_SimpleORM<T>.DataSet(aValue: TDataSource): iModelDAO_SimpleORM<T>;
- begin
- Result := Self;
- aValue.Dataset := ( (FQuery.DataSet as TDataSet) );
- end;
- function TModelDAO_SimpleORM<T>.DataSet(aValue: TDataSet): iModelDAO_SimpleORM<T>;
- begin
- Result := Self;
- aValue.Assign( (FQuery.DataSet as TPersistent) );
- end;
- class function TModelDAO_SimpleORM<T>.New(Conexao : iModelConexao): iModelDAO_SimpleORM<T>;
- begin
- Result := Self.Create(Conexao);
- end;
- function TModelDAO_SimpleORM<T>.Find: iModelDAO_SimpleORM<T>;
- begin
- Result := Self;
- FDAO.Find;
- end;
- end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement