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 dans le script de création d'un compte de connexion pour un utilisateur


Sujet :

Forms Oracle

  1. #1
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut Problème dans le script de création d'un compte de connexion pour un utilisateur
    bonjour,

    en fait, j'ai un problème dans le script de création d'un compte pour un utilisateur pour pouvoir se connecter
    voilà le code
    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
     
    declare
     
    a number;
    b number;
    cursor cc1 is select compte_candidat.login_candidat from compte_candidat  ;
    c_login compte_candidat.login_candidat%type;
     
     
    begin
    	select max(id_compte_candidat) into b from compte_candidat;
     
    	if (:compte_candidat.login_candidat is null) or (:compte_candidat.mot_de_passe_cadidat is null)  then
                 a:=show_alert('champ_manquant');end if
     
     
    		open cc1;
    			loop
    				fetch cc1
    				into c_login;
    				if cc1%found then
    					if(c_login = :compte_candidat.login_candidat)  then
    						 a:=show_alert('login_existant');
    					end if;
    					end if;
    				end loop;
    				close cc1;
     
     
     
    								insert into compte_candidat(id_compte_candidat,login_candidat,mot_de_passe_cadidat) 
    values(b+1,:compte_candidat.login_candidat ,:compte_candidat.mot_de_passe_cadidat);
                  	standard.commit;
               :compte_candidat.login_candidat :='';
               :compte_candidat.mot_de_passe_cadidat:='';
    call_form('C:\Documents and Settings\Administrator\Desktop\sysinfo\AJOUT_CANDIDATURE');
     
     
    end;
    le problème que ça m'insére le compte même si le login existe déjà ,alors qu'il faut créér ce compte que si le login tapé n'existe pas déjà dans la tables

    je pense qu'il ya une erreur dans mon script mais j'ai pas pu la détecter

    svp ,aidez moi

  2. #2
    Membre chevronné 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
    Points : 2 071
    Points
    2 071
    Par défaut
    Ce post concerne FORMS et devrait se trouver dans le forums ADEQUAT

    C'est parce que tu ne fait pas un "RAISE FORM_TRIGGER_FAILUERE" pour sortir en cas d'erreur !
    d'autre part attention à la casse lors de la comparaison
    Essaie plutot ca :
    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
     
    /* Formatted on 31/01/2013 15:31:33 (QP5 v5.240.12305.39446) */
    DECLARE
       a         NUMBER;
       b         NUMBER;
       n         NUMBER;
    BEGIN
       SELECT MAX (id_compte_candidat) INTO b FROM compte_candidat;
       IF    (:compte_candidat.login_candidat IS NULL)
          OR (:compte_candidat.mot_de_passe_cadidat IS NULL)
       THEN
          a := SHOW_ALERT ('champ_manquant');
          RAISE FORM_TRIGGER_FAILUER;
       END IF;
       BEGIN
          SELECT 1
            INTO n
            FROM compte_candidat
           WHERE UPPER(login_candidat) 
                 != UPPER(:compte_candidat.login_candidat);
        EXCEPTION
            WHEN NO_DATA_FOUND THEN
                N:=0;
        END IF;
        IF NVL(n,0)!=0 THEN
            a:=show_alert('login_existant');
            RAISE FORM_TRIGGER_FAILURE;
        END IF;
        INSERT INTO compte_candidat(id_compte_candidat,login_candidat,mot_de_passe_cadidat)
            VALUES(b+1,:compte_candidat.login_candidat ,:compte_candidat.mot_de_passe_cadidat);
                      standard.commit;
        :compte_candidat.login_candidat :='';
        :compte_candidat.mot_de_passe_cadidat:='';
        --les chemin en dur c'est le mal !!
        --call_form('AJOUT_CANDIDATURE');
        call_form('AJOUT_CANDIDATURE');
    END;

  3. #3
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    merci pour votre réponse !

    en fait ,quand je compile votre code, il m'affiche cette erreur :
    identifier"compte_candidat" must be declared
    sql statement ignored
    Je ne sais pas pourquoi il ne reconnait pas compte_candidat

  4. #4
    Membre chevronné 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
    Points : 2 071
    Points
    2 071
    Par défaut
    A quelle ligne ???

  5. #5
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    c'est bon, j'ai tout refait depuis le début et il n'y a plus cette erreur
    le problème maintenant quand j’exécute : j'entre le login et le le mot de passe et quand j'appuie sur valider
    il m'affiche :
    FRM40735: when_button_pressed trigger raised unhandled exception ora -00932

  6. #6
    Membre chevronné 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
    Points : 2 071
    Points
    2 071
    Par défaut
    Mettre des show_alert aux différentes étapes du code (notamment avant et aprés l'insert) pour voir ou ca plante !

  7. #7
    Membre chevronné 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
    Points : 2 071
    Points
    2 071
    Par défaut
    ou mieux
    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
    ...
    BEGIN
       INSERT
         INTO compte_candidat (id_compte_candidat,
                               login_candidat,
                               mot_de_passe_cadidat)
       VALUES (
                 b + 1,
                 :compte_candidat.login_candidat,
                 :compte_candidat.mot_de_passe_cadidat);
       STANDARD.commit;
    EXCEPTION
       WHEN OTHERS
       THEN
          a := SHOW_ALERT ('ERREUR ' || SQLERRM);
          RAISE form_trigger_failure;
    END;
    Call_form(......

  8. #8
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    en fait, le seul cas qui marche est le premier c'est à dire l'un des deux champs est nul .

    mais quand j'essaie d'insérer un nouveau compte ,ou bien un compte avec un login déjà existant pour m'afficher l'alerte ,ils m'affichent:

    FRM40735: when_button_pressed trigger raised unhandled exception ora -00932

  9. #9
    Membre chevronné 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
    Points : 2 071
    Points
    2 071
    Par défaut
    1) Avez vous modifier le code comme je vous l'ai indiqué dans mes deux derniers posts ?
    2) Pouvez-vous mettre le nouveau code de votre procédure modifiée ?
    Il faut donner un peu plus d détails si vous voulez être aidé !

  10. #10
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    j'ai bien modifié le code comme vous me l'avez indiqué :

    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
    41
    42
    43
    44
    45
    DECLARE
       a         NUMBER;
       b         NUMBER;
       n         NUMBER;
    BEGIN
       SELECT MAX (id_compte_candidat) INTO b FROM compte_candidat;
       IF    (:compte_candidat.login_candidat IS NULL)
          OR (:compte_candidat.mot_de_passe_cadidat IS NULL)
       THEN
          a := SHOW_ALERT ('champ_manquant');
          RAISE FORM_TRIGGER_FAILURE;
       END IF;
       BEGIN
          SELECT 1
            INTO n
            FROM compte_candidat
           WHERE UPPER(login_candidat) 
                 != UPPER(:compte_candidat.login_candidat);
        EXCEPTION
            WHEN NO_DATA_FOUND THEN
                N:=0;
        END;
        IF NVL(n,0)!=0 THEN
            a:=show_alert('login_existant');
            RAISE FORM_TRIGGER_FAILURE;
        END IF;
       BEGIN
     
        INSERT
         INTO compte_candidat (id_compte_candidat,
                               login_candidat,
                               mot_de_passe_cadidat)
       VALUES (
                 b + 1,
                 :compte_candidat.login_candidat,
                 :compte_candidat.mot_de_passe_cadidat);
       STANDARD.commit;
    EXCEPTION
       WHEN OTHERS
       THEN
          a := SHOW_ALERT ('ERREUR ' || SQLERRM);
          RAISE form_trigger_failure;
       END;
    call_form('AJOUT_CANDIDATURE');
       END;
    lors de la compilation ,il n'y a pas d'erreur ;mais quand j’exécute, cet erreur s'affiche :

    FRM40735: when_button_pressed trigger raised unhandled exception ora -00932

  11. #11
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    Bonjour,

    je pense que l'erreur est dans cette partie,car lorsque je l'ai enlevé ,ça a bien marché
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    SELECT 1
            INTO n
            FROM compte_candidat
           WHERE UPPER(login_candidat) 
                 != UPPER(:compte_candidat.login_candidat);
        EXCEPTION
            WHEN NO_DATA_FOUND THEN
                N:=0;
        END;
        IF NVL(n,0)!=0 THEN
            a:=show_alert('login_existant');
            RAISE FORM_TRIGGER_FAILURE;
        END IF;
    maintenant,je ne vois pas où est l'erreur dans cette partie

  12. #12
    Membre chevronné 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
    Points : 2 071
    Points
    2 071
    Par défaut
    http://ora-00932.ora-code.com/

    Il y a un probléme de type de données dans la requete
    1) Quel est la description de la table compte_candidat ?
    2) Comment est declaré votre item :compte_candidat.login_candidat (type,longuer) dans votre forms .

    PS : il s'agit la d'un problème de base que vous pourriez résoudre facilement !

  13. #13
    Membre à l'essai
    Femme Profil pro
    Inscrit en
    Juillet 2012
    Messages
    23
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations forums :
    Inscription : Juillet 2012
    Messages : 23
    Points : 13
    Points
    13
    Par défaut
    c'est bon , le problème est résolu !

    en fait, j'ai essayé d'utiliser un curseur pour vérifier si le login existe déjà,et ça a bien marché .


    Merci beaucoup pour votre aide

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

Discussions similaires

  1. [MySQL] Problème dans mon script
    Par ceetix dans le forum PHP & Base de données
    Réponses: 8
    Dernier message: 15/10/2007, 19h06
  2. Problème dans un script
    Par namstou3 dans le forum Général JavaScript
    Réponses: 2
    Dernier message: 08/10/2007, 18h28
  3. [PHP-JS] problème dans mon script
    Par kawther dans le forum Langage
    Réponses: 2
    Dernier message: 17/04/2007, 08h57
  4. problème dans mon script
    Par kawther dans le forum Langage
    Réponses: 1
    Dernier message: 21/03/2007, 16h40
  5. [MySQL] Problème dans mon script de pagination
    Par speedylol dans le forum PHP & Base de données
    Réponses: 3
    Dernier message: 03/11/2005, 19h37

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