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

SQL Firebird Discussion :

pb de procedure


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut pb de procedure
    bonjour a tous

    voici ma ps et je n'arrive pas deceler l'erreur si quelqu'un peut
    bien m'aider
    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
     
    CREATE PROCEDURE rechercheni(numics INTEGER, numnorme INTEGER)
    RETURNS(reponse integer)
    AS
    DECLARE VARIABLE nummax INTEGER;
    DECLARE VARIABLE nummin INTEGER;
     
    BEGIN
     
    SELECT valeur_min , valeur_max
    FROM plage_numero
    WHERE numero_ics = :numics
    INTO
    :nummax,
    :nummin;
     
    IF((nummax <= :numnorme)AND(:numnorme <= numin))
    THEN
    BEGIN
    reponse=numnorme;
    SUSPEND;
    END
     
    ELSE
    BEGIN
    EXCEPTION depassement;
    END
    voici l'erreur
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Dynamic SQL Error
    SQL error code = -206
    Column unknown
    merci à tous

  2. #2
    Membre expérimenté Avatar de TMuet
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2003
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 225
    Par défaut
    Évidemment, ça n'est pas très simple comme ça

    Ceci dit, s'il fallait parier, je dirais bien que valeur_min, valeur_max ou numero_ics n'appartiennent pas à la table plage_numero.

    Amène voir la structure de cette table...

  3. #3
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut
    je pense avoir trouver
    IF((nummax <= :numnorme)AND(:numnorme <= numin))
    en effet numin n'était pas déclarer
    merci beaucoup pour votre aide

  4. #4
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut
    en plus de ce pb qui a été resolu j'ai une table et sur cette -table j'ai deux trigger
    1 pour l'insertion automatique d'id et l'autre pour effectuer une action sur la table dont voici 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
     
    SET TERM ^;
     
    CREATE trigger codification for normes
    active before insert position 1
    AS
    DECLARE VARIABLE rep integer;
     
    BEGIN
    execute procedure rechercheni new.numero_icsni,new.reference_norme
    returning_values :rep;
    update normes set new.NVCODE_NI = new.origine_ni||""||:rep||":"||""||new.ANNEE_NORME;
     
    END
    ^
     
    SET TERM ;^
    mon pb est que ce trigger marche à demie.
    en effet le procedure s'execute sans pb mais pas le
    update normes set new.NVCODE_NI = new.origine_ni||""||:rep||":"||""||new.ANNEE_NORME;
    je me suis dit peut etre que c'était a cause de la priorité d'execution des triggers. j'ai donc porter le second a:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    active before insert position 1
    mais l'insertion ne fonctionne toujours pas!
    alors si vous avez une idée!
    merci à tous

  5. #5
    Membre expérimenté Avatar de TMuet
    Homme Profil pro
    Responsable de service informatique
    Inscrit en
    Septembre 2003
    Messages
    225
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Responsable de service informatique
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Septembre 2003
    Messages : 225
    Par défaut
    Alors puisque j'ai perdu mon premier essai, je tente à nouveau ma chance

    Le trigger before insert s'exécute avant l'insertion de la ligne dans la table 8)
    Donc la commande update ne concerne pas ta nouvelle ligne.

    Une remarque : il n'y a pas de clause where dans ton update. Est-ce normal (il va mettre à jour toute la table) ?

  6. #6
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut
    pour reponse donc il faut un trigger after insert !
    concernant le Update c'est bien marqué
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    update norme set new.nvcode_ni ........
    je pense qu'il n'y aura pas de pb!
    j'essai donc avec le after insert et je t'informe

  7. #7
    Membre éprouvé
    Homme Profil pro
    Benevole
    Inscrit en
    Mai 2004
    Messages
    1 721
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Activité : Benevole
    Secteur : Enseignement

    Informations forums :
    Inscription : Mai 2004
    Messages : 1 721
    Par défaut
    escuse moi pour ma lenteur à repondre j'avais des pb de santé.

    j'ai enfin resolu le pb mais c'est quand meme sur un cout de chance en effet sur mon champ NVCODE_NI il ya avait une clause DEFAULT....
    lorsque j'ai supprimer cette clause le trigger s'est remis a marcher sans pb :
    ps je n'ai rien changer sur le code du trigger.
    c'est quand meme bizard !
    es a dire qu'on ne peut inserer a partir d'un trigger une donnée dans un champ qui contient une clause DEFAULT :
    merci beaucoup pour ton soutient

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

Discussions similaires

  1. Apropos des Transactions au sein d'un Stored Procedure
    Par Sarbacane dans le forum Connexion aux bases de données
    Réponses: 6
    Dernier message: 16/11/2004, 08h21
  2. [VB6] Interrompre toutes procédures
    Par lutin_vert dans le forum VB 6 et antérieur
    Réponses: 5
    Dernier message: 10/09/2002, 11h39
  3. Declaration Type ds une procedure
    Par Qwazerty dans le forum Langage
    Réponses: 6
    Dernier message: 28/08/2002, 09h09
  4. [TP]code asm dans une procedure
    Par M.Dlb dans le forum Turbo Pascal
    Réponses: 3
    Dernier message: 17/08/2002, 20h43
  5. Reprendre une procedure dans une autre ?
    Par Poisson Rouge dans le forum Langage
    Réponses: 3
    Dernier message: 17/07/2002, 22h51

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