Hola:
El tema es el siguiente: La excepción ocurre durante la ejecución de
SQLEXEC, por lo tanto, la ejecución del bloque se corta y pasa al
bloque CATCH sin ejecutar AERROR(laErr). Además, al querer acceder a
laErr[2] en el bloque CATCH, el arreglo no está definido, por lo que
se lanza otra excepción distinta. Yo te recomendaría lo siguiente:
TRY
rsql = SQLEXEC(xcon.nhandle,cadsql,'tmpclientes')
CATCH TO loException
lcErrMsg = loException.Message
FINALLY
IF !EMPTY(lcErrMsg)
=Messagebox("Error: " + Chr(13) + lcErrMsg,'Error')
ELSE
=SQLDISCONNECT(xcon.nhandle)
ENDIF
ENDTRY
Otra cosa a tener en cuenta... Si el error está en la consulta (no en
la conexión), SQLDISCONNECT se debería ejecutar igual. Eso lo dejo a
tu criterio.
Espero que te sirva. Saludos.
--------------------------------------------------------------------------------------------------
> Catch To* loException &&&& loException es ignorada no me atrapa nada de