unit UnitValidaConcurrencia;

interface

uses
  Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
  Dialogs, StdCtrls, Buttons, ExtCtrls,
  ZAbstractRODataset, ZAbstractDataset, ZDataset, ZSequence, ZSqlMonitor,
  ZConnection,  ZSqlUpdate, ImgList, ComCtrls, ToolWin;

type
  TfmValidaConcurrencia = class(TForm)
    Panel1: TPanel;
    GroupBox1: TGroupBox;
    Label1: TLabel;
    Button1: TButton;
    GroupBox2: TGroupBox;
    Panel2: TPanel;
    btnElimina: TButton;
    procedure BitBtn4Click(Sender: TObject);
    procedure Button1Click(Sender: TObject);
    procedure btnEliminaClick(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
    FConnection: TZConnection;
    FDataset: TZQuery;
    FUpdateSQL: TZUpdateSQL;

    property Connection: TZConnection read FConnection write FConnection;
    property Dataset: TZQuery read FDataset write FDataset;

    procedure ProcesoRastreo();
    procedure ConectarBDAWS();
  end;

var
  fmValidaConcurrencia: TfmValidaConcurrencia;

implementation
uses unitLicencia;
{$R *.dfm}

procedure TfmValidaConcurrencia.ProcesoRastreo();
var Consulta, rutaFichero, Error:String;
Smtp, Usuario, Pass, PuertoMail, SSL, TLS,EnviadoPorMail :String;
Resultado:Integer;
fichero : TStringList;
Mensaje:String;
begin
try
  begin

    if MessageDlg('Se liberarán todas las ejecuciones existentes żDesea continuar? ',
                    mtConfirmation, [mbYes, mbNo], 0, mbYes) = mrYes then
    begin
      try
        begin
           ConectarBDAWS();
        end;
      except on e : exception do
        begin
           Raise Exception.Create('Error al conectarse a la base de datos: '+e.Message);
        end;
      end;

      try
			   begin
            dataset.SQL.Clear;
            dataset.SQL.Add('DELETE FROM Concurrencias WHERE Numero_licencia = "'+frmLicencia.gNumLic+'" ');
            Dataset.ExecSQL;
            Connection.Commit;
            Mensaje := 'Se han logrado liberar las instancias satisfactoriamente.'+#13;
            Mensaje := Mensaje+ 'Vuelva a ejecutar la aplicación.';
            MessageDlg(Mensaje, mtInformation,[mbOk], 0);
            Connection.Disconnect;
            Application.Terminate;
			   end;
			 except on e : exception do
			   begin
				  Raise Exception.Create('Error al liberar las instancias. '+#13+'La aplicación se cerrará, inicie nuevamente.');
			   end;
			 end;
    end else
    begin
        MessageDlg('La aplicación se cerrará, inténtelo nuevamente más tarde. ', mtInformation,[mbOk], 0);
        Application.Terminate;
    end;
  end;
except on e : exception do
  begin
     Connection.Disconnect;
     Mensaje := Mensaje+#13+e.Message;
     MessageDlg(e.Message, mtInformation,[mbOk], 0);
     Application.Terminate;
  end;
end;

end;

procedure TfmValidaConcurrencia.BitBtn4Click(Sender: TObject);
begin
end;
//  MessageDlg('La aplicación se cerrará, inténtelo nuevamente más tarde. ', mtInformation,[mbOk], 0);
procedure TfmValidaConcurrencia.btnEliminaClick(Sender: TObject);
begin
  ProcesoRastreo();
end;

procedure TfmValidaConcurrencia.Button1Click(Sender: TObject);
begin
 Application.Terminate;
end;




//ProcesoRastreo();
procedure TfmValidaConcurrencia.ConectarBDAWS();
var
  Url, Protocolo, Host,
  Puerto, Db, Usuario, Pass: string;
begin
  Protocolo := 'mysql';
  Host := 'exsimservicios.cicc11mxl3bu.us-east-1.rds.amazonaws.com';
  Puerto := '3306';
  Db := 'DB_Exsim_Servicios';
  Usuario := 'ExsimAdmin';
  Pass := 'exsim_4040';

  Connection := TZConnection.Create(Self);
  Dataset := TZQuery.Create(Self);
  Dataset.Connection := FConnection;
  Connection.AutoCommit := False;

  Connection.Protocol := 'mysql';
  Connection.HostName := Host;//;'instanciaaurora.cyqhg54dl0q9.us-east-1.rds.amazonaws.com';
  Connection.Database := Db;
  Connection.User := Usuario;
  Connection.Password := Pass;
  Dataset.Fields.Clear;

  Connection.Connect;

end;

end.
