Ver Mensaje Individual
  #1  
Antiguo 04-10-2024
navbuoy navbuoy is offline
Miembro
 
Registrado: mar 2024
Posts: 360
Reputación: 3
navbuoy Va por buen camino
Reconexion con componente MyDAC si la conexion se pierde

Bueno esto es un tema basico pero lo pongo por si alguien lo desconoce

si por lo que sea la conexion se "pierde" durante la ejecucion, tenemos el evento OnConnectionLost que
podemos configurar asi ... si tenemos por ejemplo el componente TMyConnection1 editamos su evento mencionado

Código:
void __fastcall TForm1::MyConnection1ConnectionLost(TObject *Sender, TComponent *Component,
          TConnLostCause ConnLostCause, TRetryMode &RetryMode)
{
     ShowMessage("Conexión perdida. Intentando reconectar...");
    int maxIntentos = 5; // Máximo número de intentos de reconexión
    int intentos = 0;

    while (intentos < maxIntentos)
    {
        try
        {
			Form1->MyConnection1->Connect(); // Intentar reconectar
            if (MyConnection1->Connected)
			{
                                // Reconectamos tablas etc...

				Form1->MyTable2->Active = true;  
				Form1->MyTable3->Active = true;  
				Form1->MyTable4->Active = true;  
				Form1->MyTable5->Active = true; 


				Form1->MyTable2->Refresh();
				Form1->MyTable3->Refresh();
				Form1->MyTable4->Refresh();
				Form1->MyTable5->Refresh();

				ShowMessage("Reconectado exitosamente.");
				// Reconexión exitosa

				return;
            }
        }
        catch (Exception &E)
        {
			//ShowMessage("Intento de reconexión fallido: " + E.Message);
		}

		Sleep(2000); // Esperar 2 segundos antes de intentar nuevamente
		intentos++;
	}

	ShowMessage("No se pudo reconectar después de " + IntToStr(maxIntentos) + " intentos.");
}
//---------------------------------------------------------------------------
Responder Con Cita