<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Il log_execute_sql utility esegue istruzioni SQL Oracle e cerca nel log eventuali errori. Se vengono trovati errori vengono visualizzati in una finestra di messaggio. C'è un flag di debug che, una volta acceso, mostrerà l'istruzione SQL prima dell'esecuzione. Per JMP 11 e versioni successive è necessario aprire la finestra di registro, impostabile tramite una preferenza (vedere i commenti di seguito).
Nome della funzione : log_execute_sql
Descrizione : Esegui SQL e intercetta gli errori ODBC Oracle rilevati nel file di registro. Se ne vengono trovati, visualizza un messaggio di avviso all'utente. Se la variabile globale :: g_log_execute_sql_debug flag è impostata su 1, visualizzare l'SQL prima di eseguirlo.
argomenti :
_caller Programma di chiamata. Questo sarà incluso nel messaggio di errore
_dbc connessione al database creata con la chiamata di connessione al database
_sql istruzione sql da eseguire
_invisible Se 1, imposta la bandiera invisibile. Se 0, non impostarlo.
_tbl_name Nome tabella opzionale per fornire la tabella dei risultati restituiti. Se non si desidera utilizzare il nome della tabella " "
sottoprogrammi : esegui sql
pulisci il registro
ottenere il registro
ritorna : puntatore al set di dati
Commenti : Specifico per Oracle, ma potrebbe essere adattato per altri database
È necessario impostare le seguenti preferenze:
Preferenze ( Registra strategia aperta ( "Quando viene aggiunto del testo" )) ; // Finestra Open Log - necessaria per JMP 11
Questa preferenza è opzionale ma utile:
pref ( ODBC Nascondi stringa di connessione ( 1 )) ; // Non mostrare la stringa di connessione nel set di dati
Chiamate di esempio :
1. Recupera i dati da una tabella Oracle in un set di dati invisibile
// Nome del programma chiamante
pname = "Program1" ;
// La stringa di connessione del database
db_dsn = "Driver = {Oracle in OraClient11g64_home}; Dbq = MYDBNAME; UID = MYUSER; PWD = MYPASSWORD;"
DBC = Crea connessione al database ( db_dsn ) ;
// Istruzione SQL da usare
sql_statement =
"SELEZIONA rp.parameter_name, rp.parameter_value
DA myschema.my_parameters rp " ;
// Ottieni valori dalla tabella PARAMETERS
param_dataset = log_execute_sql ( pname , DBC , sql_statement , 1 , "I miei parametri" ) ;
chiudere la connessione al database ( DBC ) ;
2. Esegui una dichiarazione INSERT:
// Nome del programma chiamante
pname = "Program2" ;
// La stringa di connessione del database
db_dsn = "Driver = {Oracle in OraClient11g64_home}; Dbq = MYDBNAME; UID = MYUSER; PWD = MYPASSWORD;"
DBC = Crea connessione al database ( db_dsn ) ;
sql_statement = evalinsert (
"INSERISCI IN myschema.my_activity_log
(user_created, date_created, my_section, activity, parameter1, value1, parameter2, value2,
parametro3, valore3, parametro4, valore4, parametro5, valore5, parametro6, valore6, parametro7, valore7,
parameter8, value8)
VALUES ('^ one_current_user_id ^', SYSDATE, 'DASHBOARD', 'REFRESH', 'Nome prodotto', '^ product_name_txt ^',
"Proprietario", "^ owner_txt ^", "Cerca testo evento", "^ search_event_txt ^", "Data da", "^ data_from_txt ^",
'Data in', '^ data_to_txt ^', 'Stato avviso', '^ alert_status_txt ^', 'Tipi di evento',
'^ concat_event_types_list ^', 'Alert Types', '^ concat_alert_types_list ^') " ) ;
// Esegui questo SQL. Nessuna tabella viene recuperata poiché si tratta di un semplice inserto
log_execute_sql ( pname , DBC , sql_statement , 0 , "" ) ;
// Chiudi la connessione al database
Chiudi connessione al database ( DBC ) ;