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 RUN
- 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