L'Ă©cran RequĂȘtes de Portail ZAPP (menu Administration âș Instance et exploitation âș RequĂȘtes) enregistre des requĂȘtes SQL de lecture sur la base de l'instance, pour les exĂ©cuter Ă la demande et exporter leur rĂ©sultat. Une requĂȘte enregistrĂ©e peut aussi alimenter une liste dans un formulaire dynamique ou ĂȘtre lancĂ©e par une tĂąche planifiĂ©e (voir « Planifier les tĂąches »).
L'écran est réservé aux Administrateurs.
La liste des requĂȘtes
La liste montre pour chaque requĂȘte son N°, son Nom, sa Description, la colonne ProcĂ©dure stockĂ©e (Oui si c'en est une) et les Groupes autorisĂ©s : le nombre de groupes, ou le badge Publique quand aucun groupe n'est choisi. Le champ Rechercher⊠cherche dans le nom et la description.
Sur chaque ligne, le bouton lecture ouvre l'exécution, le crayon ouvre la modification.
CrĂ©er et modifier une requĂȘte
Nouvelle requĂȘte demande :
- N° : un numéro d'au moins 1000 (convention : 1000 et plus), qui ordonne la liste ;
- Nom et Description ;
- Code : identifiant stable et unique, utilisé par l'import et l'export entre instances. Choisissez-le une fois pour toutes ;
- Procédure stockée : cochez-la si le champ SQL contient seulement le nom d'une procédure (
nomouschema.nom, rien d'autre) ; - SQL : le texte de la requĂȘte ;
- Groupes autorisĂ©s : les groupes dont les membres peuvent exĂ©cuter la requĂȘte. Vide = accessible Ă tous.
Pour Ă©viter une erreur de manipulation, une requĂȘte qui contient l'un des mots INSERT, UPDATE, DELETE, DROP, ALTER, EXEC, TRUNCATE, CREATE, GRANT ou REVOKE est refusĂ©e, mĂȘme si le mot n'apparaĂźt que dans un commentaire ou un texte entre apostrophes. Un code dĂ©jĂ pris est refusĂ© aussi. Dans ces cas le formulaire revient sans ĂȘtre enregistrĂ©.
Ce contrĂŽle est un garde-fou, pas une protection complĂšte : seule une connexion en lecture seule dĂ©diĂ©e aux requĂȘtes, que votre hĂ©bergeur peut configurer, empĂȘche vraiment toute Ă©criture. Sans elle, les requĂȘtes s'exĂ©cutent avec les droits de l'application.
ExĂ©cuter une requĂȘte et exporter le rĂ©sultat
L'écran d'exécution affiche à gauche les ParamÚtres : un champ par nom précédé de @ dans le SQL (par exemple @debut dans WHERE date_creation >= @debut::date). Les valeurs sont transmises comme du texte : convertissez-les dans le SQL quand la colonne n'est pas du texte. Un paramÚtre laissé vide vaut « aucune valeur » (NULL). Une procédure stockée s'exécute sans paramÚtre.
Cliquez sur Exécuter. Le résultat s'affiche à droite :
- quand le module Grilles de données est installé, dans une grille ;
- sinon, dans un tableau précédé du nombre de lignes et de la durée d'exécution.
Une erreur SQL s'affiche Ă la place du rĂ©sultat. AprĂšs une exĂ©cution, Export CSV et Export Excel relancent la requĂȘte avec les mĂȘmes paramĂštres et tĂ©lĂ©chargent le rĂ©sultat complet.
Un administrateur qui n'appartient Ă aucun des groupes autorisĂ©s d'une requĂȘte ne peut pas l'exĂ©cuter. Chaque exĂ©cution est journalisĂ©e (auteur, durĂ©e, nombre de lignes, erreur Ă©ventuelle).
Supprimer une requĂȘte
Sur l'Ă©cran de modification, Supprimer supprime la requĂȘte aprĂšs confirmation, avec le journal de ses exĂ©cutions. La suppression est dĂ©finitive : vĂ©rifiez d'abord qu'aucune liste de formulaire ni tĂąche planifiĂ©e ne s'appuie sur elle.
Ce qu'il faut savoir
- Une requĂȘte Publique peut ĂȘtre exĂ©cutĂ©e par toute personne qui atteint un point d'exĂ©cution, notamment par les utilisateurs d'un formulaire dynamique dont une liste s'appuie sur elle. Restreignez-la par groupes dĂšs qu'elle renvoie des donnĂ©es sensibles.
- Pour une liste de formulaire, la premiÚre colonne du résultat est la valeur enregistrée et la deuxiÚme le libellé affiché ; seules les 500 premiÚres valeurs sont proposées.
- Une tĂąche planifiĂ©e qui lance une requĂȘte ne passe pas par le contrĂŽle des groupes autorisĂ©s.
Voir aussi
- « Gérer les groupes » : les groupes à autoriser.
- « Régler les droits » : l'accÚs aux écrans du module.