ResultatSql (
ListeDeResultatsSqlDeclares )
TailleTableauxResultatsSqlDeclares
ResultatSql (
ListeDeResultatsSqlRecus )
TailleTableauxResultatsSqlRecus
ResultatSql
permet déclarer ou transmettre les résultats d'une requête Structured Query Language (SQL).
Un paramètre de sortie d'un bloc ou d'un ordre Pl/Sql n'est pas considéré comme un résultat. Il doit être déclaré au moyen de l'instruction ParametreSql.
La sémantique diffère légèrement selon le contexte :
Les types possibles d'un résultat sont :
La conversion de type de données est réalisée par le pilote d'Up ! Query correspondant à la connexion utilisée.
Les résultats sont identifiés dans le source de la requête Pl/Sql par des pseudo-variables de même nom qui sont affectées avec l'opérateur := .
Pour les résultats de type Binaire et Caractere, il est possible de soit :
Les résultats peuvent être reçus par tableau, ce qui est déclaré au moyen de l'instruction TailleTableauResultatSql. En ce cas, la gestion des tableaux est automatisée.
Variable
/******/
NomEmploye2 : Nul Ou Caractere;
DateEmbauche2 : Nul Ou Date;
NumeroEmploye2 : Nul Ou Entier;
Salaire2 : Nul Ou Reel;
NumeroDepartement : Entier;
ConnexionSql
/**********/
MaConnexionSql(Oracle, "scott/tiger");
OrdreSql
/*******/
/* Requete Sql factorisée. Les résultats formels sont déclarés explicitements. Les tableaux sont utilisés. */
MaRequeteSql2 ConnexionSql MaConnexionSql
ResultatSql (NomEmploye : Nul Ou Caractere TailleMaxSql 20, DateEmbauche : Nul Ou Date, NumeroEmploye : Nul Ou Entier, Salaire : Nul Ou Reel)
TailleTableauResultatSql 5
ParametreSql (NumeroDepartement : Entier)
SqlStatique
SELECT ename:=${NomEmploye}, hiredate:=${DateEmbauche}, empno:=${NumeroEmploye}, sal:=${Salaire}
FROM emp
WHERE deptno=${NumeroDepartement};
Principal
/*******/
...
/* Requete Sql non factorisée. Les résultats formels et effectifs sont déclarés explicitement. */
RequeteSql MaRequeteSql ConnexionSql MaConnexionSql
ResultatSql (NomEmploye : Nul Ou Caractere TailleMaxSql 20, DateEmbauche : Nul Ou Date, NumeroEmploye : Nul Ou Entier, Salaire : Nul Ou Reel)
ParametreSql (NumeroDepartement : Entier)
SqlStatique
SELECT ename:=${NomEmploye}, hiredate:=${DateEmbauche}, empno:=${NumeroEmploye}, sal:=${Salaire}
FROM emp
WHERE deptno=${NumeroDepartement};
Ecran.Ecrire(NomEmploye+" "+Caractere(DateEmbauche)+" "+Caractere(NumeroEmploye)+" "+Caractere(Salaire));
Fin RequeteSql
...
/* Usage d'une requete Sql factorisée. Les résultats effectifs sont des variables gloables. */
RequeteSql MaRequeteSql2
ResultatSql (NomEmploye2 TailleMaxSql 20, DateEmbauche2, NumeroEmploye2, Salaire2)
ParametreSql (NumeroDepartement)
Ecran.Ecrire(NomEmploye+" "+Caractere(DateEmbauche)+" "+Caractere(NumeroEmploye)+" "+Caractere(Salaire));
Fin RequeteSql
...
Fin Principal
- | - | - | - | - | - | - | - | - |