<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />Das log_execute_sql Das Dienstprogramm führt Oracle-SQL-Anweisungen aus und sucht im Protokoll nach Fehlern. Wenn Fehler gefunden werden, werden sie in einem Meldungsfeld angezeigt. Es gibt ein Debug-Flag, das bei Aktivierung die SQL-Anweisung vor der Ausführung anzeigt. Für JMP 11 und höher muss das Protokollfenster geöffnet werden, das über eine Voreinstellung festgelegt werden kann (siehe Kommentare unten).
Funktionsname : log_execute_sql
Beschreibung : Führen Sie SQL aus und fangen Sie Oracle ODBC-Fehler ab, die in der Protokolldatei gefunden wurden. Wenn welche gefunden werden, zeigen Sie dem Benutzer eine Warnmeldung an. Wenn die globale Variable :: g_log_execute_sql_debug auf 1 gesetzt ist, zeigen Sie die SQL an, bevor Sie sie ausführen.
Argumente :
_caller Aufruf des Programms. Dies wird in der Fehlermeldung enthalten
_dbc-Datenbankverbindung, die mit dem Aufruf zum Erstellen einer Datenbankverbindung erstellt wurde
_sql-SQL-Anweisung, die ausgeführt werden soll
_invisible Bei 1 setzen Sie das unsichtbare Flag. Wenn 0, stell es nicht ein.
_tbl_name Optionaler Tabellenname zur Angabe der zurückgegebenen Ergebnistabelle. Wenn kein Tabellenname gewünscht wird " "
Unterprogramme : SQL ausführen
Protokoll löschen
sich anmelden
Kehrt zurück : Zeiger auf Datensatz
Bemerkungen : Spezifisch für Oracle, kann jedoch für andere Datenbanken angepasst werden
Benötigen Sie die folgenden Einstellungen:
Einstellungen ( Offene Strategie protokollieren ( "Wenn Text hinzugefügt wird" )) ; // Open Log-Fenster - für JMP 11 erforderlich
Diese Einstellung ist optional, aber gut zu verwenden:
pref ( ODBC-Verbindungszeichenfolge ausblenden ( 1 )) ; // Keine Verbindungszeichenfolge in Datensatz anzeigen
Beispielanrufe :
1 Rufen Sie Daten aus einer Oracle-Tabelle in ein unsichtbares Dataset ab
// Name des aufrufenden Programms
pname = "Programm1" ;
// Ihre Datenbankverbindungszeichenfolge
db_dsn = "Treiber = {Oracle in OraClient11g64_home}; Dbq = MYDBNAME; UID = MYUSER; PWD = MYPASSWORD;"
dbc = Datenbankverbindung erstellen ( db_dsn ) ;
// zu verwendende SQL-Anweisung
sql_statement =
"SELECT rp.parameter_name, rp.parameter_value
FROM myschema.my_parameters rp " ;
// Werte aus der PARAMETERS-Tabelle abrufen
param_dataset = log_execute_sql ( pname . dbc . sql_statement . 1 . "Meine Parameter" ) ;
Datenbankverbindung schließen ( dbc ) ;
2 Führen Sie eine INSERT-Anweisung aus:
// Name des aufrufenden Programms
pname = "Programm2" ;
// Ihre Datenbankverbindungszeichenfolge
db_dsn = "Treiber = {Oracle in OraClient11g64_home}; Dbq = MYDBNAME; UID = MYUSER; PWD = MYPASSWORD;"
dbc = Datenbankverbindung erstellen ( db_dsn ) ;
sql_statement = evalinsert (
"INSERT in myschema.my_activity_log
(user_created, date_created, my_section, Aktivität, Parameter1, Wert1, Parameter2, Wert2,
Parameter3, Wert3, Parameter4, Wert4, Parameter5, Wert5, Parameter6, Wert6, Parameter7, Wert7,
Parameter8, Wert8)
WERTE ('^ one_current_user_id ^', SYSDATE, 'DASHBOARD', 'REFRESH', 'Produktname', '^ product_name_txt ^',
'Besitzer', '^ owner_txt ^', 'Search Event Text', '^ search_event_txt ^', 'Date From', '^ date_from_txt ^'
'Date To', '^ Date_to_txt ^', 'Alert Status', '^ alert_status_txt ^', 'Event Types',
'^ concat_event_types_list ^', 'Warnungstypen', '^ concat_alert_types_list ^') " ) ;
// Führen Sie diese SQL aus. Es wird keine Tabelle abgerufen, da es sich um eine einfache Einfügung handelt
log_execute_sql ( pname . dbc . sql_statement . 0 . "" ) ;
// Schließen Sie die Datenbankverbindung
Schließen Sie die Datenbankverbindung ( dbc ) ;