Up ! Query et Up ! PostgreSQL - Sql dynamique

Ce programme exécute des ordres Sql et Pl/Sql dynamiques pour PostgreSQL.

Le fichier source est ${UPS_HOME}/upsqry/demo/${UPS_LANGUAGE}/postgres5.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 s'exécuter, le script ${UPS_HOME}/upsqry/demo/french/postgres.sql doit être chargé pour la connexion scott/tiger.

Mode compilé

Commande de compilation

upscmp Source=postgres5.upl

Commande d'exécution

postgres5 ConnexionPostgresSQL=scott/tiger@localhost/scott

Mode interprété

upssng Source=postgres5.upl ConnexionPostgreSQL=scott/tiger@localhost/scott

Fichier source

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

ConnexionSql
/**********/
Procedure ListerEmployes(NumeroDepartement2 : Entier)
/***************************************************/
Variable
/******/
Debut Ecran.Ecrire("Département "+Caractere(NumeroDepartement2));
Ecran.Ecrire("==============");
RequeteSql MaRequeteSql ConnexionSql MaConnexionSql Fin RequeteSql
Si PasDEnregistrementSql MaRequeteSql Alors Sinon Fin Si
OrdreSql MonOrdreSql ConnexionSql MaConnexionSql Si PasDEnregistrementSql MonOrdreSql Alors Sinon Fin Si
Fin Procedure

Principal
/*******/
Debut
/* Lecture parametree et rang a rang sans reutilisation du curseur. */
ListerEmployes(10);
ListerEmployes(20);
ListerEmployes(30);
ListerEmployes(40);
MaConnexionSql.Invalider();
Fin Principal

Résultat de l'exécution

Département 10 ============== Premier rang : CLARK 1981/06/1 00:00:00 7,782 2,450.0000 2 : KING 1981/11/1 00:00:00 7,839 5,000.0000 Dernier rang : MILLER 1982/01/1 00:00:00 7,934 1,300.0000 Nombre d'enregistrement(s) : 3 Nombre d'enregistrement(s) : 3 Département 20 ============== Premier rang : SMITH 1980/12/1 00:00:00 7,369 800.0000 2 : JONES 1981/04/1 00:00:00 7,566 2,975.0000 3 : SCOTT 1982/12/1 00:00:00 7,788 3,000.0000 4 : ADAMS 1983/01/1 00:00:00 7,876 1,100.0000 Dernier rang : FORD 1981/12/1 00:00:00 7,902 3,000.0000 Nombre d'enregistrement(s) : 5 Nombre d'enregistrement(s) : 5 Département 30 ============== Premier rang : ALLEN 1981/02/1 00:00:00 7,499 1,600.0000 2 : WARD 1981/02/1 00:00:00 7,521 1,250.0000 3 : MARTIN 1981/07/1 00:00:00 7,654 1,250.0000 4 : BLAKE 1981/05/1 00:00:00 7,698 2,850.0000 5 : TURNER 1981/09/1 00:00:00 7,844 1,500.0000 Dernier rang : JAMES 1981/12/1 00:00:00 7,900 950.0000 Nombre d'enregistrement(s) : 6 Nombre d'enregistrement(s) : 6 Département 40 ============== Pas d'enregistrement Pas d'enregistrement