FiveTech Support Forums

FiveWin / Harbour / xBase community
Board index FiveWin para Harbour/xHarbour Handle error para desconexion de MySQL - Reintentar linea
Posts: 50
Joined: Tue Feb 02, 2021 10:21 PM
Handle error para desconexion de MySQL - Reintentar linea
Posted: Fri Jun 23, 2023 06: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 (fw): Select all Collapse
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
Posts: 10733
Joined: Sun Nov 19, 2006 05:22 AM
Re: Handle error para desconexion de MySQL - Reintentar linea
Posted: Mon Jul 03, 2023 09: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

Continue the discussion