Skip to content

Commit

Permalink
Alteração BeforeOpen SQLQuery SQLDb
Browse files Browse the repository at this point in the history
  • Loading branch information
glprog committed Jan 4, 2020
1 parent aa68589 commit c218378
Showing 1 changed file with 41 additions and 13 deletions.
54 changes: 41 additions & 13 deletions MiniREST.SQL.SQLDb.pas
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ TMiniRESTSQLQuerySQLDb = class(TInterfacedObject, IMiniRESTSQLQuery)
FSQL: string;
//FParams: TFPGInterfacedObjectList<string, IMiniRESTSQLParam>;
FParams: TFPGInterfacedObjectList<IMiniRESTSQLParam>;
procedure BeforeOpenMiniRESTDataSet(DataSet: TDataSet);
public
constructor Create(AConnection: IMiniRESTSQLConnection);
destructor Destroy; override;
Expand All @@ -121,6 +122,25 @@ implementation
type
TMiniRESTSQLConnectionBaseCrack = class(TMiniRESTSQLConnectionBase);

{ TSQLQuery }

TSQLQueryMiniREST = class(TSQLQuery)
private
FInternalMiniRESTSQLBeforeOpenDataSet: TDataSetNotifyEvent;
protected
procedure DoBeforeOpen; override;
end;

{ TSQLQueryMiniREST }

procedure TSQLQueryMiniREST.DoBeforeOpen;
begin
inherited DoBeforeOpen;
if Assigned(FInternalMiniRESTSQLBeforeOpenDataSet) then
FInternalMiniRESTSQLBeforeOpenDataSet(Self);
end;


function TMiniRESTSQLConnectionParamsSQLDb.GetConnectionString: string;
begin
Result := FConnectionString;
Expand Down Expand Up @@ -330,19 +350,7 @@ procedure TMiniRESTSQLConnectionSQLDb.Log(Sender: TSQLConnection;
end;

procedure TMiniRESTSQLQuerySQLDb.Open;
var
LMiniRESTSQLParam: IMiniRESTSQLParam;
LParam: TParam;
I: Integer;
begin
FConnection.Connect;
for I := 0 to FParams.Count - 1 do
begin
//LMiniRESTSQLParam := FParams.Data[I];
LMiniRESTSQLParam := FParams.Items[I];
LParam := FQry.ParamByName(LMiniRESTSQLParam.GetParamName);
TMiniRESTSQLConnectionSQLDb(FConnection.GetObject).SetMiniRESTSQLParamToSQLParam(LMiniRESTSQLParam, LParam);
end;
FQry.Open;
end;

Expand Down Expand Up @@ -414,11 +422,31 @@ function TMiniRESTSQLQuerySQLDb.GetDataSet: TDataSet;
Result := FQry;
end;

procedure TMiniRESTSQLQuerySQLDb.BeforeOpenMiniRESTDataSet(DataSet: TDataSet);
var
LMiniRESTSQLParam: IMiniRESTSQLParam;
LParam: TParam;
I: Integer;
begin
Assert(Assigned(FConnection), 'Não está definida a conexão');
if not Assigned(FConnection) then
raise Exception.Create('Não está definida a conexão');
FConnection.Connect;
for I := 0 to FParams.Count - 1 do
begin
//LMiniRESTSQLParam := FParams.Data[I];
LMiniRESTSQLParam := FParams.Items[I];
LParam := FQry.ParamByName(LMiniRESTSQLParam.GetParamName);
TMiniRESTSQLConnectionSQLDb(FConnection.GetObject).SetMiniRESTSQLParamToSQLParam(LMiniRESTSQLParam, LParam);
end;
end;

constructor TMiniRESTSQLQuerySQLDb.Create(AConnection: IMiniRESTSQLConnection);
begin
FConnection := AConnection;
FQry := TSQLQuery.Create(nil);
FQry := TSQLQueryMiniREST.Create(nil);
FQry.Options := [sqoKeepOpenOnCommit];
TSQLQueryMiniREST(FQry).FInternalMiniRESTSQLBeforeOpenDataSet := BeforeOpenMiniRESTDataSet;
//FTransaction := TSQLTransaction.Create(nil);
//FTransaction.Action := caNone;
//FTransaction.Options := [stoUseImplicit];
Expand Down

0 comments on commit c218378

Please sign in to comment.