IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Forms Oracle Discussion :

Déclaration dynamique selon user connecté


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Consultant informatique
    Inscrit en
    Juin 2010
    Messages
    48
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juin 2010
    Messages : 48
    Par défaut Déclaration dynamique selon user connecté
    Bonjour,

    j'ai une application à mettre à jours sous forms.
    cette application sera utiliser par plusieurs utilisateurs chacun aura son login et mot de passe.

    pour le moment, l'application est utiliser par l'utilisateur "USER1".

    le code ci dessous est écrit spécifiquement pour l'utilisateur "USER1" sous un triger "When_button_pressed.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    DECLARE
    	 lv_retour    VARCHAR2(32000);
       b_ok BOOLEAN := FALSE;
        ftp_list USER1.FTP.t_string_table;
    BEGIN
    	 ftp_list := PKG_EDILABO_INTERFACE.ExtractFTPData('DEPOT');
       IF ftp_list.count > 0 THEN
       	FOR i IN 1..ftp_list.count LOOP
       	  IF i=1 THEN
       	  	 lv_retour := ftp_list(1);
          ELSE
             lv_retour := lv_retour||chr(10)||ftp_list(i); 	  	
          END IF;
       	END LOOP;
       END IF;
    	 --set_editor_property('EDITEUR', TITLE, 'Liste des fichiers du répertoire de dépôt du SAS FTP');
    	 :LS_DEPOT:=lv_retour;
    	 GO_ITEM('LS_DEPOT');
    	 DO_KEY('EDIT_TEXTITEM');
    	 --show_editor( 'EDITEUR_DEPOT', lv_retour, lv_retour, b_ok );
    EXCEPTION
       WHEN OTHERS THEN raise;   	
    END;
    Vous remarqué bien que la déclaration de la variable "ftp_list" se fait à travers l'utilisateur USER1, le problème quand je me connecte avec l'utilisateur "USER2" par exemple ça ne marche pas, je suis obliger à chaque fois de changer "USER1" par celui qui est connecter actuellement.
    j'ai essayer de faire une déclaration simple sans introduire le USER1 vu que l'autre utilisateur utilise le même schéma qui contient le package "FTP" comme suit:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ftp_list FTP.t_string_table;
    ça ne marche pas toujours
    J'ai même créer un synonyme et grant to all pour ce package,
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    GRANT ALL PRIVILEGES on ftp to public ;
    create public synonym ftp for ftp;
    toujours KO.

    comment je peu faire pour que la déclaration "FTP_LIST" (voir code) soit adapté dynamiquement à l'utilisateur connecté.

    Merci d'avance.

  2. #2
    Expert confirmé
    Avatar de SheikYerbouti
    Profil pro
    Inscrit en
    Mai 2003
    Messages
    6 760
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2003
    Messages : 6 760
    Par défaut
    Bonjour,
    Vous pouvez avoir un user générique qui contient les objets partagés par les autres users, et donner le droit execute sur le package (plus le synonyme) à tous ceux qui l'utilisent.

  3. #3
    Membre Expert Avatar de Garuda
    Homme Profil pro
    Chef de projet / Urbaniste SI
    Inscrit en
    Juin 2007
    Messages
    1 285
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Chef de projet / Urbaniste SI
    Secteur : Bâtiment

    Informations forums :
    Inscription : Juin 2007
    Messages : 1 285
    Par défaut
    A priori, on ne peut pas faire ce genre de déclaration "dynamique" avec forms , car il compile dans un schémas !
    Il faut faire un user générique avec
    - les tables
    - les packages
    - etc...
    Il faut ensuite donner les droits aux autres utilisateurs d'accéder aux objets de l'utilisateur générique et créer des synonymes 'public'

    Il faut compiler les forms avec cet utilisateur 'générique' (inutile alors de préfixer)
    L'utilisateur lambda ne sert alors qu'à la connexion lors du runtime.

Discussions similaires

  1. Réponses: 2
    Dernier message: 13/04/2015, 08h39
  2. Déclaration dynamique de noms de colonnes
    Par bibirdge dans le forum Oracle
    Réponses: 3
    Dernier message: 10/11/2005, 11h05
  3. les users connectés à une base oracle
    Par progima dans le forum Oracle
    Réponses: 8
    Dernier message: 08/11/2005, 17h43
  4. liste des users connectés à une base acces
    Par progima dans le forum Access
    Réponses: 2
    Dernier message: 07/11/2005, 16h45
  5. Nbre de users connectés à une base
    Par yanis97 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 02/09/2005, 10h39

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo