Up ! Query et Up ! Odbc - Dictionnaire de données et de traitements - Version procédurale

Ce programme exécute interroge le dictionnaire de données et de traitements de Open DataBase Connectivity (ODBC).

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

Cet exemple n'utilise pas les instructions de l'extension d'Up ! 5GL pour Up ! Query. Les objets sémantiques sont construits dynamiquement.

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

Mode compilé

Commande de compilation

upscmp Source=odbc3.upl

Commande d'exécution

odbc3 ConnexionOdbc=scott/tiger@MaSourceOdbc

Mode interprété

upssng Source=odbc3.upl ConnexionOdbc=scott/tiger@MaSourceOdbc

Fichier source

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

ImporterModule
/************/
Procedure ListerLesCatalogues(MaConnexionSql : Nul Ou IConnexionSql)
/******************************************************************/
Variable
/******/
Debut
Ecran.Ecrire("ListerCatalogues");
Ecran.Ecrire("================");
MonResultatSql=ResultatRequeteSql(MaConnexionSql.ListerCatalogues("scott"));
Si MonResultatSql.NbEnregistrements>0 Alors Fin Si
Fin Procedure

Procedure ListerLesSchemas(MaConnexionSql : Nul Ou IConnexionSql)
/***************************************************************/
Variable
/******/
Debut
Ecran.Ecrire("ListerSchemas");
Ecran.Ecrire("=============");
MonResultatSql=ResultatRequeteSql(MaConnexionSql.ListerSchemas("scott"));
Si MonResultatSql.NbEnregistrements>0 Alors Fin Si
Fin Procedure

Procedure ListerLesColonnes(MaConnexionSql : Nul Ou IConnexionSql, NomCatalogue : Nul Ou Caractere, /*************************************************************************************************/
Variable
/******/
Debut
Ecran.Ecrire("ListerColonnes");
Ecran.Ecrire("--------------");
MonResultatSql=ResultatRequeteSql(MaConnexionSql.ListerColonnesTables("scott", NomCatalogue, NomSchema, NomTable));
Si MonResultatSql.NbEnregistrements>0 Alors Fin Si
Fin Procedure

Procedure ListerLesClesPrimaires(MaConnexionSql : Nul Ou IConnexionSql, NomCatalogue : Nul Ou Caractere, /******************************************************************************************************/
Variable
/******/
Debut
Ecran.Ecrire("ListerClesPrimaires");
Ecran.Ecrire("-------------------");
MonResultatSql=ResultatRequeteSql(MaConnexionSql.ListerClesPrimaires("scott", NomCatalogue, NomSchema, NomTable));
Si MonResultatSql.NbEnregistrements>0 Alors Fin Si
Fin Procedure

Procedure ListerLesClesEtrangeres(MaConnexionSql : Nul Ou IConnexionSql, NomCatalogue : Nul Ou Caractere, /*******************************************************************************************************/ Variable
/******/
Debut
Ecran.Ecrire("ListerClesEtrangeres");
Ecran.Ecrire("--------------------");
MonResultatSql=ResultatRequeteSql(MaConnexionSql.ListerClesEtrangeres("scott", NomCatalogue, NomSchema, NomTable));
Si MonResultatSql.NbEnregistrements>0 Alors Fin Si
Fin Procedure

Procedure ListerLesIndex(MaConnexionSql : Nul Ou IConnexionSql, NomCatalogue : Nul Ou Caractere, /**********************************************************************************************/
Variable
/******/
Debut
Ecran.Ecrire("ListerClesIndex");
Ecran.Ecrire("---------------");
MonResultatSql=ResultatRequeteSql(MaConnexionSql.ListerIndex("scott", NomCatalogue, NomSchema, NomTable));
Si MonResultatSql.NbEnregistrements>0 Alors Fin Si
Fin Procedure

Procedure ListerLesTables(MaConnexionSql : Nul Ou IConnexionSql)
/**************************************************************/
Variable
/******/
Debut Ecran.Ecrire("ListerTables");
Ecran.Ecrire("============");
MonResultatSql=ResultatRequeteSql(MaConnexionSql.ListerTables("scott", Nul, "scott"));
Si MonResultatSql.NbEnregistrements>0 Alors Fin Pour Fin Si
Fin Procedure

Procedure ListerLesParametres(MaConnexionSql : Nul Ou IConnexionSql, NomCatalogue : Nul Ou Caractere, /***************************************************************************************************/
Variable
/******/
Debut Ecran.Ecrire("ListerParametres");
Ecran.Ecrire("---------------");
MonResultatSql=ResultatRequeteSql(MaConnexionSql.ListerParametresProcedures("scott", NomCatalogue, NomSchema, NomProcedure));
Si MonResultatSql.NbEnregistrements>0 Alors Fin Si
Fin Procedure

Procedure ListerLesProcedures(MaConnexionSql : Nul Ou IConnexionSql)
/******************************************************************/
Variable
/******/
Debut Ecran.Ecrire("ListerProcedures");
Ecran.Ecrire("================");
MonResultatSql=ResultatRequeteSql(MaConnexionSql.ListerProcedures("scott", Nul, "scott"));
Si MonResultatSql.NbEnregistrements>0 Alors Fin Si
Fin Procedure

Principal
/*******/
Variable
/******/
Debut
MaConnexionSql=ConnexionOdbc("scott", "tiger");
Si MaConnexionSql.ListerCataloguesSupporte Alors Sinon Ecran.Ecrire("ListerCatalogues() non supporte."); 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() non supporte. ListerTables ============ scott - scott - dept - Table - ? ListerColonnes -------------- deptno - Entier(4) - ? dname - Caractere(14) - ? loc - Nul Ou Caractere(13) - ? ListerClesPrimaires ------------------- PK_Dept - Unique - deptno - 1 ListerClesEtrangeres -------------------- ListerClesIndex --------------- PK_Dept - Unique - deptno - 1 ----------- scott - scott - dual - Table - ? ListerColonnes -------------- dummy - Caractere(1) - ? ListerClesPrimaires ------------------- ListerClesEtrangeres -------------------- ListerClesIndex --------------- ----------- scott - scott - emp - Table - ? ListerColonnes -------------- empno - Entier(4) - ? ename - Caractere(10) - ? job - Nul Ou Caractere(9) - ? mgr - Nul Ou Entier(4) - ? hiredate - Nul Ou Date(16) - ? sal - Nul Ou Reel(4) - ? comm - Nul Ou Reel(4) - ? deptno - Nul Ou Entier(4) - ? ListerClesPrimaires ------------------- PK_Emp - Unique - empno - 1 ListerClesEtrangeres -------------------- FK_Emp_Deptno - deptno - dept.deptno ListerClesIndex --------------- PK_Emp - Unique - empno - 1 ----------- scott - scott - emp_desc - Table - ? ListerColonnes -------------- empno - Nul Ou Entier(4) - ? description - Nul Ou Caractere(3646) - ? ListerClesPrimaires ------------------- ListerClesEtrangeres -------------------- FK_Emp_Desc_Empno - empno - emp.empno ListerClesIndex --------------- ----------- scott - scott - emp_pict - Table - ? ListerColonnes -------------- empno - Nul Ou Entier(4) - ? picture - Nul Ou Binaire(3647) - ? ListerClesPrimaires ------------------- ListerClesEtrangeres -------------------- FK_Emp_Pict_Empno - empno - emp.empno ListerClesIndex --------------- ----------- scott - scott - v_dept - Vue - ? scott - scott - v_emp - Vue - ? ListerProcedures ================ MaFonction ListerParametres --------------- @RETURN_VALUE - Nul Ou Entier(10) - Sortie - ? @NumeroDepartement - Nul Ou Entier(10) - Entree - ? ----------- MaProcedure ListerParametres --------------- @RETURN_VALUE - Entier(10) - Sortie - ? @NumeroDepartement - Nul Ou Entier(10) - Entree - ? @SalaireMin - Nul Ou Reel(24) - Sortie - ? @SalaireMax - Nul Ou Reel(24) - Sortie - ? -----------