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

PL/SQL Oracle Discussion :

test sur curseur


Sujet :

PL/SQL Oracle

  1. #1
    Candidat au Club
    Homme Profil pro
    Chef de projet MOA
    Inscrit en
    Avril 2012
    Messages
    2
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Maroc

    Informations professionnelles :
    Activité : Chef de projet MOA
    Secteur : Service public

    Informations forums :
    Inscription : Avril 2012
    Messages : 2
    Points : 4
    Points
    4
    Par défaut test sur curseur
    bonjour tout le monde,
    j'ai un petit probleme avec un curseur, tout d'abord je vous explique la situtation, je realise une application de gestion d'une bibliotheque numérique et lorsqu'un utilisateur souhaite consulter un document il il dois etablir une demande qui sera par la suite stocké dans une table ACCES(nom,prenom,code_document,titre_document, decision ), et moi en tant que responsable je dois lui autorisé l'accès dans le champs décision, donc je lui met (O) pour OUI, qui été par défaut (I) pour INSTANCE.
    le problème se pose dans le bouton d'ouverture qui contient un code pour tester le champs décision avec un curseur parametré( nom,prenom,code_document) car le document ne s'ouvre pas, voila la partie de code et merci j'attend avec impatience votre aide.
    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
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    DECLARE
       	  v_decision   acces.decision%type; 	  
     	    a varchar2(100);	   	
    	    b varchar2(100);
       cursor couper_cursor is
    	 	  select decision
    	 	  from   acces
    	 	  where :global.nom=nom and  :global.prenom=prenom and :B2.code=code;
    BEGIN
    			open couper_cursor;
    		 	 loop
    			    fetch couper_cursor into v_decision;
    			    exit when couper_cursor%notfound;
    		 	 end loop;
    		 	 close couper_cursor;
    			 	b := user;
    	  if b='SPECIAL' then v_decision := 'O';
    	  end if;
    	  	if v_decision = 'I' then
    			 	message('VOTRE DEMANDE EST EN INSTANCE' );
    			 	message('VOTRE DEMANDE EST EN INSTANCE' );
    			elsif v_decision = 'N'then
    				  message('VOTRE DEMANDE A ETE REFUSEE ' );
    				 	message('VOTRE DEMANDE A ETE REFUSEE' );
    		  elsif v_decision = 'O'then		  	 
    					a:='cmd /C start'||:B2.dossier||:B2.fichier;
    					host(a);
    		   else 
            	insert into acces(nom,prenom,grade,unite,service,code_document,decision) 
            	values(:global.nom,:global.prenom,:global.grade,:global.unite,:global.service,:B2.code,'I');
    	          commit;
    		  end if;		   
    END;

  2. #2
    Membre confirmé
    Avatar de Bibeleuh
    Homme Profil pro
    Développeur
    Inscrit en
    Septembre 2010
    Messages
    209
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Bas Rhin (Alsace)

    Informations professionnelles :
    Activité : Développeur
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Septembre 2010
    Messages : 209
    Points : 542
    Points
    542
    Par défaut
    Salut,

    D'après ton code, tu n'as qu'une seule valeur de retour possible pour ton SELECT :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
          SELECT decision
            FROM acces
           WHERE     :global.nom = nom
                 AND :global.prenom = prenom
                 AND :B2.code = code
    Si c'est le cas, inutile de passer par un curseur tu peux faire un SELECT INTO :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    ...
     SELECT decision INTO v_decision
       FROM acces
       WHERE     :global.nom = nom
       AND :global.prenom = prenom
       AND :B2.code = code;[/B]
    ...
    Et sinon tu comptes appeler ton bloc PL de quelle manière ? En faisant une procédure ?

Discussions similaires

  1. faire un test sur un programme externe
    Par marieheraud dans le forum Windows
    Réponses: 3
    Dernier message: 02/09/2004, 18h32
  2. test sur un recordset
    Par georgeabitbol dans le forum ASP
    Réponses: 2
    Dernier message: 15/07/2004, 14h39
  3. [langage] Test sur un caractère
    Par GLDavid dans le forum Langage
    Réponses: 8
    Dernier message: 07/07/2004, 18h03
  4. test sur fichiers[forms9i]
    Par Challenger dans le forum Forms
    Réponses: 6
    Dernier message: 14/06/2004, 17h25
  5. Test sur un champs vide
    Par PrinceMaster77 dans le forum ASP
    Réponses: 2
    Dernier message: 27/04/2004, 12h54

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