Captura de mensaje de error de la base de datos<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Hola,
Me gustaría saber si hay una forma de detectar el mensaje de error de la base de datos y ponerlo en una variable jmp.
Ejemplo para una base de datos de Oracle, si trato de insertar un valor que ya existe en la clave principal de ID:
/*JSL*/
sql = "INSERTAR EN MI.TABLA (ID, DATOS) VALORES ('A',150)";
Base de datos abierta (dsnDB, sql);
/* visualización de REGISTRO */
[Oracle][ODBC][Ora]ORA-00001: restricción única (MY.TABLE) violada
ORA-06512: en la línea 1
Me gustaría tener en una variable jsl esta picadura: "[Oracle][ODBC][Ora]ORA-00001: restricción única (MY.TABLE) violada".
No encontré ninguna solución por el momento.
Gracias.
Re: Captura de mensaje de error de la base de datosHola,
Gracias por estos grandes consejos. La función Log Capture es la función que estaba buscando.
Re: Captura de mensaje de error de la base de datosHola,
Una forma de hacerlo es con la función Log Capture. Para probar el código JSL simulé dos tipos diferentes de errores:
- Un error de falla al no establecer una conexión con la base de datos de Access antes de seleccionar las columnas de la tabla especificada
- Un error de falla por no tener instalado un controlador ODBC apropiado
He incluido un ejemplo de cómo podría lograr lo que desea hacer en el siguiente código JSL y los mensajes de error resultantes:
Nombres predeterminados hasta aquí
( 1 ) ;Error de acceso01 = "Error de acceso:" || Captura de registro ( Abrir base de datos (
"DSN=Base de datos de MS Access;DBQ=C:UsersstkoprDocumentsMovinOn.accdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;" ,
"SELECCIONAR * DESDE tblVehicle" ,
"tblVehículo"
)) ;
Lo siguiente se escribe en el registro y la cadena de error se almacena en la variable AccessError01 para la prueba de escenario 1.
"Error de acceso:[Microsoft][Controlador ODBC Microsoft Access] No se pudo encontrar el archivo '(desconocido)'.
"
Lo siguiente se escribe en el registro y la cadena se almacena en la variable AccessError01 para la prueba de escenario 2.
"Error de acceso:[iODBC][Administrador de controladores]No se encontró el nombre de la fuente de datos y no se especificó ningún controlador predeterminado. No se pudo cargar el controlador
"
Sí, puede... conectarse a una base de datos ODBC