<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />le log_execute_sql Cet utilitaire exécute les instructions SQL Oracle et recherche dans le journal les erreurs éventuelles. Si des erreurs sont trouvées, elles sont affichées dans une boîte de message. Il existe un indicateur de débogage qui, lorsqu'il est activé, affichera l'instruction SQL avant exécution. Pour JMP 11 et les versions ultérieures, la fenêtre de journal doit être ouverte et configurable via une préférence (voir commentaires ci-dessous).
Nom de la fonction : log_execute_sql
La description : Exécuter SQL et intercepter les erreurs ODBC Oracle trouvées dans le fichier journal. S'il en trouve, affiche un message d'avertissement à l'utilisateur. Si l'indicateur de variable globale :: g_log_execute_sql_debug est défini sur 1, affichez le code SQL avant de l'exécuter.
Arguments :
_appel programme appelant. Cela sera inclus dans le message d'erreur
Connexion à la base de données _dbc créée avec l'appel de création de connexion à la base de données
instruction _sql sql à exécuter
_invisible Si 1, active le drapeau invisible. Si 0, ne le définit pas.
_tbl_name Nom de la table facultatif pour donner la table de résultats renvoyée. Si aucun nom de table n'est souhaité, utilisez " "
Sous-programmes : exécuter sql
effacer le journal
se connecter
Résultats : pointeur sur le jeu de données
commentaires : Spécifique à Oracle, mais peut être adapté à d'autres bases de données
Besoin de définir les préférences suivantes:
Préférences ( Log Open Stratégie ( "Quand du texte est ajouté" )) ; // Fenêtre Open Log - nécessaire pour JMP 11
Cette préférence est optionnelle mais bonne à utiliser:
pref ( Chaîne de connexion masquée ODBC ( 1 )) ; // Ne pas afficher la chaîne de connexion dans le jeu de données
Exemple d'appels :
1. Récupérer les données d'une table Oracle dans un ensemble de données invisible
// Nom du programme appelant
pname = "Programme1" ;
// Votre chaîne de connexion à la base de données
db_dsn = "Pilote = {Oracle dans OraClient11g64_home}; Dbq = MYDBNAME; UID = MYUSER; PWD = MYPASSWORD;"
dbc = Créer une connexion à la base de données ( db_dsn ) ;
// instruction SQL à utiliser
sql_statement =
"SELECT rp.parameter_name, rp.parameter_value
DE myschema.my_parameters rp " ;
// Récupère les valeurs de la table PARAMETERS
param_dataset = log_execute_sql ( pname , dbc , sql_statement , 1 , "Mes paramètres" ) ;
fermer la connexion à la base de données ( dbc ) ;
2 Exécutez une instruction INSERT:
// Nom du programme appelant
pname = "Programme2" ;
// Votre chaîne de connexion à la base de données
db_dsn = "Pilote = {Oracle dans OraClient11g64_home}; Dbq = MYDBNAME; UID = MYUSER; PWD = MYPASSWORD;"
dbc = Créer une connexion à la base de données ( db_dsn ) ;
sql_statement = evalinsert (
"INSERT INTO myschema.my_activity_log
(user_created, date_created, my_section, activité, paramètre1, valeur1, paramètre2, valeur2,
paramètre3, valeur3, paramètre4, valeur4, paramètre5, valeur5, paramètre6, valeur6, paramètre7, valeur7,
paramètre 8, valeur 8)
VALUES ('^ one_current_user_id ^', SYSDATE, 'DASHBOARD', 'REFRESH', 'Nom du produit', '^ product_name_txt ^',
'Propriétaire', '^ propriétaire_txt ^', 'Recherche de texte d'événement', '^ search_event_txt ^', 'Date de', '^ date_du_mot_ ^',
'Date To', '^ date_to_txt ^', 'État de l'alerte', '^ alert_status_txt ^', 'Types d'événements',
'^ concat_event_types_list ^', 'Types d'alertes', '^ concat_alert_types_list ^') " ) ;
// Exécuter ce SQL. Aucune table n'est récupérée car c'est une simple insertion
log_execute_sql ( pname , dbc , sql_statement , 0 , "" ) ;
// Fermer la connexion à la base de données
Fermer la connexion à la base de données ( dbc ) ;