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

AS/400 Discussion :

Triggers SQL & Co


Sujet :

AS/400

  1. #1
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Avril 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Avril 2014
    Messages : 22
    Points : 16
    Points
    16
    Par défaut Triggers SQL & Co
    Bonjour,
    J'ai mis en place un trigger sur un fichier physique 400
    Il se déclenche lors de l'update et de l'insert.
    Si dessous sa définition:
    CREATE TRIGGER CAP_U03
    BEFORE UPDATE ON CAP
    REFERENCING OLD ROW AS O
    NEW ROW AS N
    FOR EACH ROW MODE DB2SQL

    BEGIN
    DECLARE W_CD CHAR(3);
    DECLARE W_NO CHAR(6);
    DECLARE W_NC CHAR(6);
    DECLARE W_AC CHAR(3);
    DECLARE CDRET CHAR(1);
    SET W_CD = O.CFCDOGA;
    SET W_NO = O.CFNOCA;
    SET W_NC = ' ';
    SET W_AC = N.CFCDTACHMN;
    SET CDRET= ' ';
    CALL STRG000RP (W_CD, W_NO, W_NC, W_AC, CDRET);
    IF CDRET = '1' THEN
    SET N.CFCDTACHMN = 'MEL';
    END IF;
    IF CDRET = '2' THEN
    SET N.CFCDTACHMN = ' ';
    END IF;

    le prog strg00rp a été créé en procédure séparément.
    Le machin fonctionne. Pas de soucis.
    Mais que sur l'AS400 !!

    Si on utilise un requêteur SQL (standard), hors du 400 on obtiend le message suivant
    Error: [SQL0723] Echec du déclencheur SQL CAP_U03 de IKGLFIC_R2. SQLCODE : -444, SQLSTATE : 42724.
    SQLState: 09000
    ErrorCode: -723

    Que fais je ?
    Je supprime le trigger ?
    Je supprime les requeteurs SQL ?
    Je supprime mon collègue qui l'utilise ? (encore que moralement c'est discutable...)

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    Bonjour.
    Dans votre trigger, vous appelez un programme dans la liste des biblios.
    Essayez de copier le programme dans QGPL pour voir si ça ne fonctionnerait pas mieux ...

  3. #3
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Avril 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Avril 2014
    Messages : 22
    Points : 16
    Points
    16
    Par défaut

    pas mieux....

  4. #4
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Septembre 2008
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Septembre 2008
    Messages : 940
    Points : 1 409
    Points
    1 409
    Par défaut
    SQLSTATE 42724 : Unable to access an external program used for a user-defined function or a procedure.
    Essaie aussi de voir sous quel utilisateur le trigger tourne lorsque tu y accède depuis l'extérieur, et si le profil est autorisé au trigger, au programme, à la bibliothèque, etc ...
    Regarde aussi dans DSPLOG si tu trouve quelquechose ...

  5. #5
    Membre à l'essai
    Homme Profil pro
    Analyse système
    Inscrit en
    Avril 2014
    Messages
    22
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 61
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Avril 2014
    Messages : 22
    Points : 16
    Points
    16
    Par défaut ...
    J'ai supprimé le collègue et çà va mieux.




    Non, je l'ai gardé, parce que le garçon a finit par trouvé au fin fond du paramétrage de son "bignou-requêteur-accès-sql-machin" l'endroit ou il devait rajouter des bib spécifiques, un truc genre EDTLIBL mais à sa sauce à lui. Et maintenant ça marche !!!

    As400 : 1, reste du monde : 0 (comme d'hab)

Discussions similaires

  1. Trigger SQL - Base SAGE
    Par Silvia12 dans le forum Développement
    Réponses: 9
    Dernier message: 13/12/2007, 10h47
  2. Problème Trigger SQL Server
    Par RodEpsi dans le forum Développement
    Réponses: 6
    Dernier message: 25/05/2006, 16h03
  3. JDBC et le Trigger SQL server
    Par fadex dans le forum JDBC
    Réponses: 2
    Dernier message: 02/05/2006, 00h25
  4. Attaquer une base externe à partir d'un trigger SQL Server
    Par stephpr44 dans le forum Développement
    Réponses: 5
    Dernier message: 29/10/2005, 16h40
  5. [Triggers SQL]
    Par Abdelmoumen dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 06/09/2005, 19h01

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