Handle error para desconexion de MySQL - Reintentar linea

Handle error para desconexion de MySQL - Reintentar linea

Postby nlerdafehn » Fri Jun 23, 2023 6:47 pm

Buenas tardes foro,

Actualmente estoy haciendo un handle de error personalizado y va todo viento en popa. Exceptuando una cosa, cuando pierde la conexión a MYSQL, tiene unos 20 segundos de timeout para volver a conectarse como habia menciado Mr. Rao. Pero al terminar esos 20 segundos, tira error fatal y cierra sistema. Lo que quiero hacer es que le aparezca para reintentar. Pero al reintentar, y conectarse exitosamente, no vuelve a ejecutar la linea que arrojo el error. Puedo obtener la QUERY consultando los GetParam( n, j ) pero no puedo saber el NOMBRE de la variable donde se guardaba esa información, y por lo complejo de mi sistema, no puedo ponerle el mismo nombre de variable a todas las consultas SQL. Lo ideal, seria que se haga automaticamente, pero a mi me gustaria hacer la asignación por ejemplo de ntab := oodbc:query(GetParam( n, 1 )).

Habria alguna forma de saber, cuando ocurre un error, toda la linea del problema para asi descubrir la variable en cuestion? O bien, que me brinde el nombre de la variable asociada. No la puedo encontrar en ningun log. EJEMPLO:

ntab := oodbc:query("SELECT id from customers")

"SELECT id from customer" - Lo tengo.
ntab - No lo tengo

Code: Select all  Expand view
if e:sUbsystem = "MYSQL" .and. e:sUbcode = 2013
      Envia_Error_Log(cErrorLog)
      msgstop("Se perdio la conexión al servidor. Aguarde unos instantes y presione aceptar. Vamos a reintentar conectarnos","Ha ocurrido un error de conexion")
      if !msgrun("Conectandose al servidor", "Conectando", { || meconecto() } )
         msgstop("Fallo la reconexión al servidor. El sistema se cerrara.","Error al reconectarse")
         PostQuitMessage( 0 )
         QUIT
         return .f.
      else
         if len(variablesInUse['TDOLPHINQRY:LOADQUERY']) > 0
           
            return .t.
         else
            msgstop("Pudimos reconectarnos, pero fallo la recuperación de lo que estabas haciendo. El sistema va a cerrarse.","No se ha podido recuperar")
            return .f.
         endif
      endif
   endif
 
Nicolás
nlerdafehn
 
Posts: 50
Joined: Tue Feb 02, 2021 10:21 pm
Location: Buenos Aires, Argentina

Re: Handle error para desconexion de MySQL - Reintentar linea

Postby nageswaragunupudi » Mon Jul 03, 2023 9:13 pm

There is not time limit
if the internet or network is restored even after an hour it will be automatically reconnected.
Even during disconnection, the user can continue to browse, print, export to excel and do everything except editing and writing data to the database.

Even if the users tries to edit and save changes:
- Tries to reconnect and save data. If successful, continues as if nothing happened
- If can not reconnect, just gives a message. The user can check connections to net work and when physical connection is restored, try to save again
Regards

G. N. Rao.
Hyderabad, India
User avatar
nageswaragunupudi
 
Posts: 10248
Joined: Sun Nov 19, 2006 5:22 am
Location: India


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: Google [Bot] and 78 guests