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 :

problème d'utilisation des curseurs implicites dans forms


Sujet :

Forms Oracle

  1. #1
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 76
    Points : 48
    Points
    48
    Par défaut problème d'utilisation des curseurs implicites dans forms
    Bonjour,
    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
    34
    35
    36
    37
    38
    39
    40
     
    declare
         CURSOR C_droit IS
         Select login,  codemodu
         From droit
         where login = :PW.login 
         ;
         LC$login droit.login%Type ;
         LC$codemodu droit.codemodu%Type ;
     
         roleattr VARCHAR2(30 BYTE);
     
    	TYPE TYP_REF_CUR IS REF CURSOR ;
    	C_modu TYP_REF_CUR ;
     
     
    BEGIN
       Open C_droit ; 
       Loop 
          Fetch C_droit Into LC$login,  LC$codemodu; 
          	if 
                - -----
                -------
            else
     
                Open  C_modu For 'select nom_role from module' ;
          		  While C_modu %FOUND
          		  Loop
          		  	Fetch C_modu Into roleattr ;
          			Forms_ddl('grant'|| roleattr || 'to' || :PW.login||';');
    		  End loop ;
    	     Close C_modu ;
     
          	end if;	
     
          Exit When C_droit%NOTFOUND ;
       End loop ;
       Close C_droit ; 
     
    END;
    J'ai à la ligne suivante :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
                Open  C_modu For 'select nom_role from module' ;
    l'erreur: "Erreur 591,... cette fonction n'est pas prise en charge dans les programmes côté client"

    Aidez moi à lever cette erreur

    Merci d'avance

  2. #2
    Expert éminent sénior
    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
    Points : 11 862
    Points
    11 862
    Par défaut
    Comme le dit le message, vous ne pouvez pas utiliser cette syntaxe coté client, donc coté Forms. Vous devez definir votre second curseur comme le premier.

  3. #3
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 76
    Points : 48
    Points
    48
    Par défaut
    Merci pour la réaction.

    Le problème qui se pose, c'est que je dois charger ce curseur avec une requête donc la condition dépend des données récupérer dans le FETCH du premier curseur.
    Il est impossible de le déclarer et le charger dans la partie déclarative comme le premier

    Je ne sais s'il y a un autre moyen pour gérer celà.
    (une façon de faire)

    Merci

  4. #4
    Membre averti
    Profil pro
    Inscrit en
    Août 2005
    Messages
    316
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Août 2005
    Messages : 316
    Points : 388
    Points
    388
    Par défaut
    bonjour,
    il est tout a fait possible de faire des choses comme
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    declare
         cursor c1 is select * from table1;
         cursor c2 (z_code varchar2) is select * from table2 where clef=z_code;
    begin
      for e1 in c1
      loop
            for e2 in c2(e1.code)
            loop
                ---traitement
            end loop;
      end loop;
    end;
    a condition que la requete du deuxieme curseur soit la même et que juste les valeur de test change , cela doit correspondre a votre probleme.

  5. #5
    Membre du Club
    Inscrit en
    Mai 2005
    Messages
    76
    Détails du profil
    Informations forums :
    Inscription : Mai 2005
    Messages : 76
    Points : 48
    Points
    48
    Par défaut
    Merci bcp, c'est bon

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/03/2011, 11h59
  2. Réponses: 5
    Dernier message: 06/03/2010, 14h47
  3. Problème d'utilisation des threads dans mes servlets
    Par casho dans le forum Servlets/JSP
    Réponses: 1
    Dernier message: 08/08/2007, 19h34
  4. Réponses: 1
    Dernier message: 27/07/2005, 17h08
  5. Utiliser des Assembly .Net dans Visual C++ 6.0
    Par nitram dans le forum MFC
    Réponses: 1
    Dernier message: 15/06/2005, 09h05

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