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