23 de enero de 2004

Uso de AERROR() para errores ODBC

AERROR() es una función general de errores de Visual FoxPro que crea una matriz que contiene información sobre el último error de Visual FoxPro, OLE u ODBC.

Como ejemplo intentaremos ejecutar un comando SELECT de una tabla que no existe en el servidor de datos remoto.

Tambien capturamos el error con AERROR() si la conexión falla.

LOCAL lnHandle, laError, lcMsg, ln
DIMENSION laError[1]
*-- Especificar el DSN, Usuario y Contraseña correctos
lnHandle = SQLCONNECT('[Origen de datos SQL]','sa','')
IF lnHandle > 0
  SQLEXEC(lnHandle,'SELECT * FROM TablaQueNoExiste')
  IF AERROR(laError) > 0
    *-- Ocurrio un error
    * DISPLAY MEMORY LIKE laError
    lcMsg = ""
    FOR ln = 1 TO ALEN(laError,2)
      lcMsg = lcMsg + TRANSFORM(laError(1,ln)) + CHR(13)
    ENDFOR
    MESSAGEBOX(lcMsg, 16, "Error de ODBC")
  ENDIF
  SQLDISCONNECT(lnHandle)
ELSE
  IF AERROR(laError) > 0
    *-- Ocurrio un error
    * DISPLAY MEMORY LIKE laError
    lcMsg = ""
    FOR ln = 1 TO ALEN(laError,2)
      lcMsg = lcMsg + TRANSFORM(laError(1,ln)) + CHR(13)
    ENDFOR
    MESSAGEBOX(lcMsg, 16, "Error de ODBC")
  ENDIF
ENDIF
AERROR( ) crea una matriz con siete columnas y devuelve el número de filas de la matriz. El tipo de error que se produce determina el número de filas de la matriz.

Para mayor información vea la ayuda de la función AERROR().

Luis María Guayán