Cattura messaggio di errore del database<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Ciao,
Vorrei sapere se esiste un modo per catturare il messaggio di errore del database e inserirlo in una variabile jmp.
Esempio per un DB Oracle, se provo ad inserire un valore già esistente su ID primary key :
/* JSL */
sql = "INSERT INTO MY.TABLE (ID, DATA) VALUES ('A',150)";
OpenDatabase (dsnDB, sql);
/* visualizzazione LOG */
[Oracle][ODBC][Ora]ORA-00001: vincolo univoco (MY.TABLE) violato
ORA-06512: alla riga 1
Vorrei avere in una variabile jsl questa puntura: "[Oracle][ODBC][Ora]ORA-00001: vincolo unico (MY.TABLE) violato".
Non ho trovato alcuna soluzione per il momento.
Grazie.
Re: Cattura messaggio di errore del databaseCiao,
Grazie per questi ottimi consigli. La funzione Log Capture è la funzione che stavo cercando.
Re: Cattura messaggio di errore del databaseCiao,
Un modo per farlo è con la funzione Log Capture. Per testare il codice JSL ho simulato due diversi tipi di errori:
- Un errore di errore dovuto alla mancata connessione al database di Access prima di selezionare le colonne dalla tabella specificata
- Un errore di errore dovuto alla mancanza di un driver ODBC appropriato installato
Ho incluso un esempio di come potresti realizzare ciò che vuoi fare nel seguente codice JSL e nei messaggi di errore risultanti:
I nomi predefiniti sono qui
( 1 ) ;Errore di accesso01 = "Errore di accesso:" || Acquisizione registro ( Apri banca dati (
"DSN=MS Access Database;DBQ=C:UsersstkoprDocumentsMovinOn.accdb;DriverId=25;FIL=MS Access;MaxBufferSize=2048;PageTimeout=5;UID=admin;" ,
"SELEZIONA * DA tblVeicolo" ,
"tblVeicolo"
)) ;
Quanto segue viene scritto nel registro e la stringa di errore viene archiviata nella variabile AccessError01 per il test dello scenario 1.
"Errore di accesso:[Microsoft][Driver ODBC Microsoft Access] Impossibile trovare il file '(sconosciuto)'.
"
Quanto segue viene scritto nel registro e la stringa viene memorizzata nella variabile AccessError01 per il test dello scenario 2.
"Errore di accesso:[iODBC][Driver Manager]Nome dell'origine dati non trovato e nessun driver predefinito specificato. Impossibile caricare il driver
"
Sì, puoi... connetterti a un database ODBC