No salir del programa desde ErrSysW
Posted: Tue Feb 11, 2020 11:33 am
Hola, estoy intentando solucionar un problema que se me ha dado en un par de clientes cuando están conectados por ADO a una base de datos MySQL en un servidor virtual.
Se producen desconexiones de la base de datos, cuando no hay actividad, así que he pensado modificar ErrSysW de la siguiente forma para capturar el error e intentar que reconecte a la base de datos.
La variable M->oAnnos:oADO es una instancia de una clase que tengo para encapsular la conexión ADO y cuyo método CONECTAR es el siguiente :
Lo que necesito es que cuando he reconectado a la base de datos no se salga del programa, como indico en el comentario de la línea "return lRet"
Uso FWH1601, Harbour 3.2 y Bcc 7.0
Se producen desconexiones de la base de datos, cuando no hay actividad, así que he pensado modificar ErrSysW de la siguiente forma para capturar el error e intentar que reconecte a la base de datos.
Code: Select all
cMessage = " Error description: " + ErrorMessage( e ) + CRLF
cErrorLog += cMessage
if AT ("WINOLE/1007", cMessage) # 0 .and. AT ("(0x800A0CB3)", cMessage) # 0
M->oAnnos:oADO:CONECTAR ()
nVeces := 1
do while nVeces < 5 .and. M->oAnnos:oADO:oCon = Nil
nVeces++
M->oAnnos:oADO:CONECTAR ()
enddo
if M->oAnnos:oADO:oCon # Nil
lRet := .t.
return lRet // Necesito que no se salga del programa. Actualmente me genera hb_out.log y se sale.
endif
endif
Code: Select all
method CONECTAR () class TAdo
::oCon := FW_OpenAdoConnection( { "MYSQL", ::cServer, ::cDataBase, ::cUser, ::cClave }, .t. )
if ::oCon == Nil
? 'Falla'
endif
return .t.
Uso FWH1601, Harbour 3.2 y Bcc 7.0