Captura de errores con Harbour

Captura de errores con Harbour

Postby YamilBracho » Tue Dec 20, 2005 11:54 pm

Saludos.
Estoy usando la clase TOle con Harbour y necesito capturar uan excepcion cuando estoy abriendo una conexio ADO a una BD de datos SQL Server. Trate de BEGIN SEQUENCE y nada. Me muestra el error y se sale del programa
Hay alguna construccion que me permita capturar errores desde mi aplicacion ?
YamilBracho
 
Posts: 33
Joined: Mon Oct 17, 2005 11:56 pm
Location: Caracas, Venezuela

Postby R.F. » Wed Dec 21, 2005 5:07 pm

Yamil, los errores que comentas que se producen no se pueden interceptar desde programa porque son generados por ADO (programa externo), supongo que ADO tendra algun metodo que te permita interceptar el error desde programa para luego hacer lo que tu quieras
Saludos
R.F.
R.F.
 
Posts: 840
Joined: Thu Oct 13, 2005 7:05 pm

Postby YamilBracho » Wed Dec 21, 2005 7:16 pm

Gracias Rene por tu respuesta pero el caso es que xHarbour usas Try.. Catch y lo puedes capturar pero en Harbour no he conseguido la manera.
En otros lenguajes donde puedes usar ADO usas el correspodiente manejo de errores que te proporciona el lenguaje con On Error (guacala..!), el Try.. Catch de .NET, etc
YamilBracho
 
Posts: 33
Joined: Mon Oct 17, 2005 11:56 pm
Location: Caracas, Venezuela

Postby jlcapel » Wed Dec 21, 2005 7:48 pm

Yamil,

Usando esto:

Code: Select all  Expand view
       BEGIN SEQUENCE
         ::oConnection:Open( cConnString, cUserId, cPassword, nOptions)
       RECOVER USING oError
          lResult := .F.
          MsgStop(oError:Operation+CRLF+oError:Description,"Ado Connection")
          MsgInfo("Yeahhh")
       END SEQUENCE

Donde ::oConnection es un objeto Connection de ADO debería de capturar el error y seguir en RECOVER USING. No obstante, esto no evita que salga el mensaje de error de ADO y los que añadas.

No obstante, si no te es mucho inconveniente, podrías usar xHarbour y dejar el código de la siguiente manera:

Code: Select all  Expand view
       TRY
         ::oConnection:Open( cConnString, cUserId, cPassword, nOptions)
       CATCH oError
          lResult := .F.
          MsgStop(oError:Operation+CRLF+oError:Description,"Ado Connection")
       END

En este caso, el único mensaje que aparecerá es el que tu muestras con el MsgStop. Si quieres ver algunos ejemplos y dos clases básicas para utilizar ADO con xharbour, están en www.capelblog.com

Espero haberte sido de ayuda.

Saludos,
José Luis Capel
www.capelblog.com
User avatar
jlcapel
 
Posts: 229
Joined: Wed Oct 12, 2005 5:32 pm
Location: Valencia - España

Postby YamilBracho » Fri Dec 23, 2005 1:02 am

Gracias Jose Luis por la confirmacion de mis sospechas.
Es una lastima que Harbour no ofrezca esta facilidad, quizas por ahora asi que voy a usar xHarbour

Saludos y gracias
YamilBracho
 
Posts: 33
Joined: Mon Oct 17, 2005 11:56 pm
Location: Caracas, Venezuela

Postby dbzap » Sat Nov 24, 2007 12:54 am

Yamil.
Puedo contactarme contigo via correo ?
Lo agradeceria
Saludos
Julio Gonzalez V.
RANDOM S.A.
SISTEMICA S.A.
User avatar
dbzap
 
Posts: 189
Joined: Mon Nov 07, 2005 7:36 pm
Location: Chile


Return to FiveWin para Harbour/xHarbour

Who is online

Users browsing this forum: No registered users and 62 guests