Up ! Query et Up ! Odbc - Sql dynamique

Ce programme exécute des ordres Sql et Pl/Sql dynamiques pour Open DataBase Connectivity (ODBC).

Le fichier source est ${UPS_HOME}/upsqry/demo/${UPS_LANGUAGE}/odbc5.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 compiler, 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/odbc.sql doit être chargé pour la connexion scott/tiger.

Mode compilé

Commande de compilation

upscmp Source=odbc5.upl

Commande d'exécution

odbc5 ConnexionOdbc=scott/tiger@MaSourceOdbc

Mode interprété

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

Fichier source

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

ConnexionSql
/**********/
Procedure ListerEmployes(NumeroDepartement2 : Entier)
/***************************************************/
Variable
/******/
Debut
Ecran.Ecrire("Département "+Caractere(NumeroDepartement2));
Ecran.Ecrire("==============");
RequeteSql MaRequeteSql ConnexionSql MaConnexionSql Fin Si
Ecran.Ecrire(Ligne+NomEmploye+" "+Caractere(DateEmbauche)+" "+Caractere(NumeroEmploye)+" "+Caractere(Salaire)); 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 09/06/1981 00:00:00 7,782 2,450.0000 2 : KING 17/11/1981 00:00:00 7,839 5,000.0000 Dernier rang : MILLER 23/01/1982 00:00:00 7,934 1,300.0000 Nombre d'enregistrement(s) : 3 Nombre d'enregistrement(s) : 3 Département 20 ============== Premier rang : SMITH 17/12/1980 00:00:00 7,369 800.0000 2 : JONES 02/04/1981 00:00:00 7,566 2,975.0000 3 : SCOTT 09/12/1982 00:00:00 7,788 3,000.0000 4 : ADAMS 12/01/1983 00:00:00 7,876 1,100.0000 Dernier rang : FORD 03/12/1981 00:00:00 7,902 3,000.0000 Nombre d'enregistrement(s) : 5 Nombre d'enregistrement(s) : 5 Département 30 ============== Premier rang : ALLEN 20/02/1981 00:00:00 7,499 1,600.0000 2 : WARD 22/02/1981 00:00:00 7,521 1,250.0000 3 : MARTIN 28/07/1981 00:00:00 7,654 1,250.0000 4 : BLAKE 01/05/1981 00:00:00 7,698 2,850.0000 5 : TURNER 08/09/1981 00:00:00 7,844 1,500.0000 Dernier rang : JAMES 03/12/1981 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