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 29-07-2015
adripugliesso adripugliesso is offline
Miembro
NULL
 
Registrado: jul 2015
Posts: 49
Poder: 0
adripugliesso Va por buen camino
Perdida de Conexión con TADOConnection

Buenos días, tengo una aplicación que se conecta a una base de datos SQL Server 2005 a través del un componente TADOConnection, el problema es que cuando la aplicación por algún motivo pierde la conexión con la Base de Datos (problemas de LAN, etc) empieza a tirar "Error en Vinculo de Comunicación" y no para hasta que cierro la aplicación y la vuelvo a abrir. Hay alguna manera de trabajar sobre ese error, evitar ese mensaje, que avise que no tiene conexión desde la aplicación y poder aguardar a que la conexión vuelva??
Responder Con Cita
  #2  
Antiguo 29-07-2015
Avatar de AgustinOrtu
[AgustinOrtu] AgustinOrtu is offline
Miembro Premium
NULL
 
Registrado: ago 2013
Ubicación: Argentina
Posts: 1.858
Poder: 15
AgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en brutoAgustinOrtu Es un diamante en bruto
Revisa la propiedad KeepConnection y los eventos OnDisconnect, BeforeDisconnect, AfterDisconnect y BeforeConnect
Responder Con Cita
  #3  
Antiguo 30-07-2015
adripugliesso adripugliesso is offline
Miembro
NULL
 
Registrado: jul 2015
Posts: 49
Poder: 0
adripugliesso Va por buen camino
No lo puedo hacer funcionar con esos eventos.-
Responder Con Cita
  #4  
Antiguo 30-07-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Cita:
Empezado por adripugliesso Ver Mensaje
No lo puedo hacer funcionar con esos eventos.-
¿Por qué?



.
Responder Con Cita
  #5  
Antiguo 31-07-2015
adripugliesso adripugliesso is offline
Miembro
NULL
 
Registrado: jul 2015
Posts: 49
Poder: 0
adripugliesso Va por buen camino
Estuve haciendo pruebas y cuando se pierde la conexión TCP del componente TADOConnetion la aplicación tira el error y se traba, use los eventos OnDisconnect, BeforeDisconnect, AfterDisconnect y BeforeConnect pero no hacen nada cuando se corta la conexión aparece este error: "Proveedor de TCP: Se ha forzado la interrupción de una conexión existente por el host remoto" y se traba todo.-
Responder Con Cita
  #6  
Antiguo 01-08-2015
Avatar de ecfisa
ecfisa ecfisa is offline
Moderador
 
Registrado: dic 2005
Ubicación: Tres Arroyos, Argentina
Posts: 10.508
Poder: 36
ecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to beholdecfisa is a splendid one to behold
Hola adripugliesso.

Sin saber como está configurada la conexión y ni siquiera una línea de código, es muy difícil poder sugerirte algo.

Saludos
__________________
Daniel Didriksen

Guía de estilo - Uso de las etiquetas - La otra guía de estilo ....
Responder Con Cita
  #7  
Antiguo 01-08-2015
adripugliesso adripugliesso is offline
Miembro
NULL
 
Registrado: jul 2015
Posts: 49
Poder: 0
adripugliesso Va por buen camino
En una LAN común, una de las PC tiene el SQL server 2005, entonces desde la otra la accedo con una aplicación básica 1 form con un TADOConnection, y una consulta con un TADOQuery a la PC con el SQL, conecto el ADOConnection en el evento ONSHOW del form y a través de un TButtom actualizo el TADOQuery haciendo un (CLOSE/OPEN), teniendo el cable de red conectado anda todo perfecto, pero cuando saco el cable de red de la PC y presiono el TButton para actualizar el TADOQuery tira el siguiente error: "Proveedor TCP: Se ha forzado la interrupción de una conexión existente por el host remoto" y se traba la aplicación. Lo que yo quiero es evitar eso y que simplemente me muestre un Showmessage diciendo que se perdió conexión con la DB y que vuelva a intentar mas tarde y luego al conectarle el cable de red el sistema siga funcionando normalmente.-
Responder Con Cita
  #8  
Antiguo 01-08-2015
adripugliesso adripugliesso is offline
Miembro
NULL
 
Registrado: jul 2015
Posts: 49
Poder: 0
adripugliesso Va por buen camino
SOLUCIONADO:

Agrege un TApplicationEvents y en USES ComObj;

y luego en el evento OnException del TApplicationEvents

Código Delphi [-]
procedure TForm1.ApplicationEvents1Exception(Sender: TObject;
  E: Exception);
var
  EO:EOLEException;
begin
  if E is EOLEException then
  begin
    EO:=EOLEException(E);
    if (EO.ErrorCode = -2147467259) then
      //error de conexion (disconnected)
      begin
        try
          try
            ADOConnection1.Close;
          except;
          end;
          ADOConnection1.Open;
          ShowMessage('FALLA EN LA CONEXION A LA BASE DE DATOS - Reestableciendo, vuelva a intentar!');
        except
          on E:Exception do
            ShowMessageFmt('FALLA EN LA CONEXION A LA BASE DE DATOS!.  '
            + 'Por favor, intente luego!.'#13'Error message: %s', [E.Message]);
          end;
      end
      else
        ShowMessage(E.Message + ' ' + IntToStr(EO.ErrorCode));
    end
  else
    ShowMessage(E.ClassName + #13 + E.Message);

end;
Responder Con Cita
  #9  
Antiguo 01-08-2015
Avatar de Casimiro Notevi
Casimiro Notevi Casimiro Notevi is offline
Moderador
 
Registrado: sep 2004
Ubicación: En algún lugar.
Posts: 32.038
Poder: 10
Casimiro Notevi Tiene un aura espectacularCasimiro Notevi Tiene un aura espectacular
Muy bien, pero una curiosidad: ¿por qué le quitas el cable de red?
Responder Con Cita
  #10  
Antiguo 01-08-2015
adripugliesso adripugliesso is offline
Miembro
NULL
 
Registrado: jul 2015
Posts: 49
Poder: 0
adripugliesso Va por buen camino
para simular cortes de red y probar de esta manera si la aplicación funciona ante un corte.-
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
Manejo de perdida de conexión Vlady Conexión con bases de datos 5 22-08-2011 17:49:49
Perdida de conexion mentor Conexión con bases de datos 1 29-12-2009 17:57:30
Perdida de Conexion.... BuenaOnda Firebird e Interbase 2 08-04-2008 17:31:02
Perdida de Conexion Libarra MySQL 3 25-03-2008 17:40:31
Perdida de conexion con interbase fox Conexión con bases de datos 0 04-02-2004 09:18:38


La franja horaria es GMT +2. Ahora son las 21:00:06.


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