Advertisement
jpfassis

DAO Genérico com SimpleORM Delphi

Aug 8th, 2019
564
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Delphi 2.06 KB | None | 0 0
  1. unit Model.DAO.SimpleORM;
  2.  
  3. interface
  4.  
  5. uses
  6.  
  7. Model.Conexoes.Interfaces, Model.DAO.Interfaces,
  8. ////////
  9. SimpleInterface, SimpleDAO, SimpleQueryFiredac,
  10. FireDAC.Comp.Client,
  11. ////////
  12. Data.DB, System.Classes, System.SysUtils, Vcl.Dialogs;
  13.  
  14. type
  15. TModelDAO_SimpleORM<T : class, constructor> = class(TInterfacedObject, iModelDAO_SimpleORM<T>, iModelFiredacComponentes<TComponent>)
  16.   private
  17.   FDConexao: TComponent;
  18.   FQuery   : iSimpleQuery;
  19.   FDAO     : iSimpleDAO<T>;
  20.   public
  21.     constructor Create(Conexao : iModelConexao);
  22.     destructor Destroy; override;
  23.     class function New(Conexao : iModelConexao) : iModelDAO_SimpleORM<T>;
  24.     function DataSet (aValue : TDataSource) : iModelDAO_SimpleORM<T>; overload;
  25.     function DataSet (aValue : TDataSet) : iModelDAO_SimpleORM<T>; overload;
  26.     function _this(Conexao : iModelConexao) : TComponent;
  27.     function Find : iModelDAO_SimpleORM<T>;
  28. end;
  29.  
  30. implementation
  31.  
  32. { TModelDAO_SimpleORM<T> }
  33.  
  34. constructor TModelDAO_SimpleORM<T>.Create(Conexao : iModelConexao);
  35. begin
  36.   //a Conexao já vem pronta...kkkk
  37.   FQuery   :=  TSimpleQueryFiredac.New(  _this(Conexao) as TFDConnection  );
  38.   FDAO     :=  TSimpleDAO<T>.New(FQuery);
  39. end;
  40.  
  41. destructor TModelDAO_SimpleORM<T>.Destroy;
  42. begin
  43.   FreeAndNil(FDConexao);
  44.   inherited;
  45. end;
  46.  
  47. function TModelDAO_SimpleORM<T>._this(Conexao : iModelConexao): TComponent;
  48. begin
  49.   FDConexao := TComponent.Create(nil);
  50.   FDConexao := Conexao.Conection;
  51.   Result    := FDConexao;
  52. end;
  53.  
  54. function TModelDAO_SimpleORM<T>.DataSet(aValue: TDataSource): iModelDAO_SimpleORM<T>;
  55. begin
  56.   Result := Self;
  57.   aValue.Dataset := ( (FQuery.DataSet as TDataSet) );
  58. end;
  59.  
  60. function TModelDAO_SimpleORM<T>.DataSet(aValue: TDataSet): iModelDAO_SimpleORM<T>;
  61. begin
  62.   Result := Self;
  63.   aValue.Assign( (FQuery.DataSet as TPersistent) );
  64. end;
  65.  
  66. class function TModelDAO_SimpleORM<T>.New(Conexao : iModelConexao): iModelDAO_SimpleORM<T>;
  67. begin
  68.   Result := Self.Create(Conexao);
  69. end;
  70.  
  71. function TModelDAO_SimpleORM<T>.Find: iModelDAO_SimpleORM<T>;
  72. begin
  73.   Result := Self;
  74.   FDAO.Find;
  75. end;
  76.  
  77. end.
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement