Up ! Query et Up ! MaxDB - Dictionnaire de données et de traitements - Version déclarative

Ce programme exécute interroge le dictionnaire de données et de traitements de Max DB de Sap.

Le fichier source est ${UPS_HOME}/upsqry/demo/${UPS_LANGUAGE}/maxdb4.upl.

Cet exemple utilise les instructions de l'extension d'Up ! 5GL pour Up ! Query. Les objets sémantiques sont déclarés statiquement.

Pour analyser le fichier source, UpsQry.upi doit être déclaré parmi les modules importés dans le fichier ${UPS_HOME}/ini/${UPS_USER}/upsp5l.ini.

Pour exécuter, le script ${UPS_HOME}/upsqry/demo/french/maxdb.sql doit être chargé pour la connexion scott/tiger.

Mode compilé

Commande de compilation

upscmp Source=maxdb4.upl

Commande d'exécution

maxdb4 ConnexionMaxDB=scott/tiger@MonServeur/NSP

Mode interprété

upssng Source=maxdb4.upl ConnexionMaxDB=scott/tiger@MonServeur/NSP

Fichier source

Source Composant "Exemple d'emploi d'Up ! MaxDB" Version 4.0.0;

ImporterModule
/************/
ConnexionSql
/**********/
Procedure ListerLesCatalogues()
/*****************************/
Debut
Ecran.Ecrire("ListerCatalogues");
Ecran.Ecrire("================");
RequeteSql CataloguesSql ConnexionSql MaConnexionSql Fin RequeteSql
Fin Procedure

Procedure ListerLesSchemas()
/**************************/
Debut
Ecran.Ecrire("ListerSchemas");
Ecran.Ecrire("=============");
RequeteSql SchemasSql ConnexionSql MaConnexionSql Fin RequeteSql
Fin Procedure

Procedure ListerLesColonnes(NomCatalogue : Nul Ou Caractere, NomSchema : Nul Ou Caractere, NomTable : Nul Ou Caractere)
/********************************************************************************************************************/
Variable
/******/
Debut Ecran.Ecrire("ListerColonnes");
Ecran.Ecrire("--------------");
RequeteSql ColonnesTablesSql ConnexionSql MaConnexionSql Fin RequeteSql
Fin Procedure

Procedure ListerLesClesPrimaires(NomCatalogue : Nul Ou Caractere, NomSchema : Nul Ou Caractere, NomTable : Nul Ou Caractere)
/**************************************************************************************************************************/
Debut
Ecran.Ecrire("ListerClesPrimaires");
Ecran.Ecrire("-------------------");
RequeteSql ClesPrimairesSql ConnexionSql MaConnexionSql Fin RequeteSql
Fin Procedure

Procedure ListerLesClesEtrangeres(NomCatalogue : Nul Ou Caractere, NomSchema : Nul Ou Caractere, NomTable : Nul Ou Caractere)
/***************************************************************************************************************************/
Debut
Ecran.Ecrire("ListerClesEtrangeres");
Ecran.Ecrire("--------------------");
RequeteSql ClesEtrangeresSql ConnexionSql MaConnexionSql Fin RequeteSql
Fin Procedure

Procedure ListerLesIndex(NomCatalogue : Nul Ou Caractere, NomSchema : Nul Ou Caractere, NomTable : Nul Ou Caractere)
/******************************************************************************************************************/
Debut
Ecran.Ecrire("ListerClesIndex");
Ecran.Ecrire("---------------");
RequeteSql IndexSql ConnexionSql MaConnexionSql Fin RequeteSql
Fin Procedure

Procedure ListerLesTables()
/*************************/
Debut
Ecran.Ecrire("ListerTables");
Ecran.Ecrire("============");
RequeteSql TablesSql ConnexionSql MaConnexionSql Fin RequeteSql
Fin Procedure

Procedure ListerLesParametres(NomCatalogue : Nul Ou Caractere, NomSchema : Nul Ou Caractere, NomProcedure : Nul Ou Caractere)
/***************************************************************************************************************************/
Variable
/******/
Debut
Ecran.Ecrire("ListerParametres");
Ecran.Ecrire("---------------");
RequeteSql ParametresProceduresSql ConnexionSql MaConnexionSql Fin RequeteSql
Fin Procedure

Procedure ListerLesProcedures()
/*****************************/
Debut
Ecran.Ecrire("ListerProcedures");
Ecran.Ecrire("================");
RequeteSql ProceduresSql ConnexionSql MaConnexionSql Fin RequeteSql
Fin Procedure

Principal
/*******/
Debut
Si MaConnexionSql.ListerCataloguesSupporte Alors Sinon Fin Si
Ecran.Ecrire("); Si MaConnexionSql.ListerSchemasSupporte Alors Sinon Fin Si Ecran.Ecrire(");
Si MaConnexionSql.ListerTablesSupporte Alors Sinon Fin Si Ecran.Ecrire(");
Si MaConnexionSql.ListerProceduresSupporte Alors Sinon Fin Si
Ecran.Ecrire(");
Fin Principal

Résultat de l'exécution

ListerCatalogues() non supporte. ListerSchemas ============= - information_schema - - mysql - - scott - - test - - upsmys - ListerTables ============ - scott - dept - Table - Departements ListerColonnes -------------- deptno - Nul Ou Entier - Numero du departement dname - Nul Ou Caractere(14) - Nom du departement loc - Nul Ou Caractere(10) - Lieu du departement ListerClesPrimaires ------------------- PRIMARY - Unique - deptno - 1 PRIMARY - Unique - empno - 1 ListerClesEtrangeres -------------------- ListerClesIndex --------------- PRIMARY - Non unique - deptno - 1 ----------- - scott - emp - Table - Employes ListerColonnes -------------- empno - Nul Ou Entier - Numero de l'employe ename - Nul Ou Caractere(10) - Nom de l'employe job - Nul Ou Caractere(9) - Profession de l'employe mgr - Nul Ou Entier(9) - Numero du superieur hierarchique de l'employe hiredate - Nul Ou Date(9) - Date d'embauche de l'employe sal - Nul Ou Reel(9) - Salaire de l'employe comm - Nul Ou Reel(9) - Commission de l'employe deptno - Nul Ou Entier(9) - Numero du departement de l'employe ListerClesPrimaires ------------------- PRIMARY - Unique - deptno - 1 PRIMARY - Unique - empno - 1 ListerClesEtrangeres -------------------- FK_EMP_DEPTNO - deptno - dept.deptno ListerClesIndex --------------- FK_EMP_DEPTNO - Unique - deptno - 1 PRIMARY - Non unique - empno - 1 ----------- - scott - emp_desc - Table - Description des employes ListerColonnes -------------- empno - Nul Ou Entier - Numero de l'employe description - Nul Ou Caractere(5535) - Description de l'employe ListerClesPrimaires ------------------- ListerClesEtrangeres -------------------- FK_EMP_DESC_EMPNO - empno - emp.empno ListerClesIndex --------------- FK_EMP_DESC_EMPNO - Unique - empno - 1 ----------- - scott - emp_pict - Table - Photos des employes ListerColonnes -------------- empno - Nul Ou Entier - Numero de l'employe picture - Nul Ou Binaire(5535) - Photo de l'employe ListerClesPrimaires ------------------- ListerClesEtrangeres -------------------- FK_EMP_PICT_EMPNO - empno - emp.empno ListerClesIndex --------------- FK_EMP_PICT_EMPNO - Unique - empno - 1 ----------- - scott - v_dept - Vue - VIEW - scott - v_emp - Vue - VIEW ListerProcedures ================ MaFonction - Fonction - ListerParametres --------------- RETURNS - Reel - Sortie - ? NumeroDepartement - Entier - Entree - ? ----------- MaProcedure - Procedure - ListerParametres --------------- NumeroDepartement - Entier - Entree - ? SalaireMin - Reel - Sortie - ? SalaireMax - Reel - Sortie - ? -----------