Estoy intentando validar que si no es posible conectar con el servidor sql, despliegue el mensaje de error de conexión y termine el programa, lo intento en el evento ON INIT, pero si hay error no termina el programa, lo que sucede es que carga la ventana principal.
Este es el ejemplo:
Code: Select all
#include "hmg.ch"
#xcommand TRY => BEGIN SEQUENCE WITH {| oErr | Break( oErr ) }
#xcommand CATCH [<!oErr!>] => RECOVER [USING <oErr>] <-oErr->
#xcommand FINALLY => ALWAYS
FUNCTION MAIN
DEFINE WINDOW Form_1;
AT 0,0;
WIDTH 1200;
HEIGHT 700;
ON INIT Conectar();
MAIN
END WINDOW
CENTER WINDOW Form_1
ACTIVATE WINDOW Form_1
RETURN NIL
FUNCTION Conectar()
LOCAL oCnn
LOCAL oErr
IF ( oCnn := win_OleCreateObject( "ADODB.Connection" ) ) == NIL
MsgStop( "No es posible crear objeto conexión " + win_OleErrorText() )
RETURN NIL
ENDIF
TRY
oCnn:Open( "Provider=SQLNCLI11;Server=server;Database=database;Uid=user;Pwd=pass;" )
CATCH oErr
MsgStop( "Error al intentar conectar a la base de datos " + e"\n" + hb_StrToUtf8(oErr:Description) )
RETURN NIL
END
RETURN NIL
Gracias.
Saludos,
Javier