Club Delphi  
    FTP   CCD     Buscar   Trucos   Trabajo   Foros

Retroceder   Foros Club Delphi > Principal > Conexión con bases de datos
Registrarse FAQ Miembros Calendario Guía de estilo Temas de Hoy

Conexión con bases de datos

Respuesta
 
Herramientas Buscar en Tema Desplegado
  #1  
Antiguo 19-01-2022
aromigaret aromigaret is offline
Miembro
 
Registrado: jun 2011
Posts: 68
Poder: 13
aromigaret Va por buen camino
Reconectar con ADOconection

Buen día,
Estoy desarrollando un sistema que se conecta por LAN a una base de datos Server SQL 2014. Mientras haya acceso a la red, funciona perfecto, el problema esta cuando alguna vez se pierde la conexión. Para ello escribí la siguiente función, la cual al tercer intento que no se conecta, pregunta si sigue intentando o aborta la conexión y cierra el sistema.


Código Delphi [-]
function Tform1.CONECTAR;
VAR
  I:INTEGER;
begin

  I:=1;
  PANEL_INTENTOS.Show;        // MUESTRO EL PANEL DONDE FIGURAN LOS INTENTOS DE CONEXION
  PANEL_INTENTOS.Repaint;

  RESULT:=TRUE;

  WHILE (CONEXION_A_BASE.Connected = FALSE) AND ( I < 4 ) DO        // SI NO ESTA CONECTADA INICIO EL CICLO
  begin

    try

      CONEXION_A_BASE.Open;
      RESULT:=TRUE;
      BREAK;

    EXCEPT

      ON E:EXCEPTION DO      // SI NO ESTA CONECTADA
      BEGIN

        // CONEXION_A_BASE.Close;

        INC(I);
        if (I > 3) and (MESSAGEDLG('NO PUEDO CONECTARME AL SERVIDOR, VERIFIQUE LA CONEXION.' + CHR(13) +
 '¿ VUELVO A INTENTAR ?',MTERROR,[MBYES,MBNO],0,MBYES) = MRYES) THEN I:=1;

        INTENTOS.Caption:=INTTOSTR(I);
        INTENTOS.Repaint;

        RESULT:=FALSE;

      END;

    end;

  end;

  PANEL_INTENTOS.Hide;

end;

El problema radica en que, si la persona se obsesiona con intentar conectar cuando no hay conexion (Yo lo simulo habilitando/deshabilitando la LAN), el sistema se ralentiza. Al ejecutar el debuger, veo que cuando muestra en pantalla el mensaje de seguir intentando o no, aparece constantemente el error de conexión, es como si siguiera intentado conectar indefinidamente, el mensaje es el siguiente:

Project Facturar.exe raised exception class EOleException with message '[DBNETLIB][ConnectionOpen
(Connect()),]No existe el servidor SQL Server o se ha denegado el acceso al mismo'.

Si dejo sin comentarios la linea "CONEXION_A_BASE.Close" el sistema se ralentiza aun mas. si pongo un CONEXION_A_BASE.destroy da error de modulo.
He buscado por todos lados y no hallé la solución de como hacer para que deje de intentar conectarse, espero alquien pueda darme una mano.
Desde ya muchas gracias

Última edición por Neftali [Germán.Estévez] fecha: 19-01-2022 a las 17:48:05. Razón: Corregir salto de linea para ajustar a la ventana
Responder Con Cita
  #2  
Antiguo 20-01-2022
Avatar de Neftali [Germán.Estévez]
Neftali [Germán.Estévez] Neftali [Germán.Estévez] is offline
[becario]
 
Registrado: jul 2004
Ubicación: Barcelona - España
Posts: 18.269
Poder: 10
Neftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en brutoNeftali [Germán.Estévez] Es un diamante en bruto
Cita:
Empezado por aromigaret Ver Mensaje
Project Facturar.exe raised exception class EOleException with message '[DBNETLIB][ConnectionOpen
(Connect()),]No existe el servidor SQL Server o se ha denegado el acceso al mismo'.
Yo he probado tu código por encima y me parece que funciona correctamente.
Reintenta las tres veces que le has programado.
Tarda bastante, pero eso es normal porque la conexión tiene un timeout.

O tal vez no te estoy entendiendo.
__________________
Germán Estévez => Web/Blog
Guía de estilo, Guía alternativa
Utiliza TAG's en tus mensajes.
Contactar con el Clubdelphi

P.D: Más tiempo dedicado a la pregunta=Mejores respuestas.
Responder Con Cita
  #3  
Antiguo 20-01-2022
aromigaret aromigaret is offline
Miembro
 
Registrado: jun 2011
Posts: 68
Poder: 13
aromigaret Va por buen camino
Neftali, gracias por responder. Anoche, despues de mucho buscar en mi codigo, encontré el error, y es que no recordaba que había puesto un timer para que verifique la conexión y allí es la razón de porque volvia a intentar conectarse. Que perdida de tiempo. Saludos
Responder Con Cita
Respuesta



Normas de Publicación
no Puedes crear nuevos temas
no Puedes responder a temas
no Puedes adjuntar archivos
no Puedes editar tus mensajes

El código vB está habilitado
Las caritas están habilitado
Código [IMG] está habilitado
Código HTML está deshabilitado
Saltar a Foro

Temas Similares
Tema Autor Foro Respuestas Último mensaje
ADOConection por ADSL Cabanyaler Conexión con bases de datos 3 05-12-2011 10:38:54
Como asociar un adoConection a una base por FTP pablopessoa Internet 1 05-12-2008 03:04:41
Archivo de configuracion de un ADOCONECTION egarc Conexión con bases de datos 3 28-06-2007 09:43:21
AdoConection Nbull SQL 3 21-03-2005 16:08:14
ADOConection.CommitTrans con StoreProcedures... Cabanyaler SQL 2 17-07-2003 08:44:03


La franja horaria es GMT +2. Ahora son las 18:20:31.


Powered by vBulletin® Version 3.6.8
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Traducción al castellano por el equipo de moderadores del Club Delphi
Copyright 1996-2007 Club Delphi