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 :

syntaxe trigger : unknow token [FAQ]


Sujet :

SQL Firebird

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Par défaut syntaxe trigger : unknow token
    bonjour tout le monde

    j'essaye de faire en vain un trigger. Mais j'ai des problème de unknow token (j'utilise flamerobin pour créer mon trigger).

    Quand je fais ce trigger (qui soit disant ne sers à rien) :

    SET TERM ^;

    CREATE TRIGGER trig_maj_catalogueproduit FOR catalogueproduit
    ACTIVE BEFORE UPDATE POSITION 1
    AS
    DECLARE VARIABLE
    requete VARCHAR(256);
    BEGIN

    END
    ^
    SET TERM ;^
    Ca passe.

    Par contre dès que je met ce if, :

    SET TERM ^;

    CREATE TRIGGER trig_maj_catalogueproduit FOR catalogueproduit
    ACTIVE BEFORE UPDATE POSITION 1
    AS
    DECLARE VARIABLE
    requete VARCHAR(256);
    BEGIN
    IF (NEW.hastype = 1) THEN
    requete := 'toto';
    END
    ^
    SET TERM ;^
    j'ai une vieille erreur qui apparait , qui est :
    *** IBPP::SQLException ***
    Context: Statement:repare(

    CREATE TRIGGER trig_maj_catalogueproduit FOR catalogueproduit
    ACTIVE BEFORE UPDATE POSITION 1
    AS
    DECLARE VARIABLE
    requete VARCHAR(256);
    BEGIN
    IF (NEW.hastype = 1) THEN
    requete := 'toto';
    END
    )
    Message: isc_dsql_prepare failed

    SQL Message : -104
    Invalid token

    Engine Code : 335544569
    Engine Message :
    Dynamic SQL Error
    SQL error code = -104
    Token unknown - line 10, column 18
    =
    quelqu'un saurait-il ce truc sans doute bète, mais pour tout dire je sèche complètement

    merci d'avance

  2. #2
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 949
    Par défaut
    L'affectation se fait par "=" et pas par ":=" (on n'est pas sous Delphi)

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Par défaut
    c'est glop glop ça marche bieng maintenant =)

    par contre je viens de me tenter le EXECUTE IMMEDIATE, et pouf le token IMMEDIATE n'est pas reconnu malgrès la doc de reference language d'interbase 6 sur le site officiel de Firebird.
    Si je ne ne me trompe pas, j'ai lu qu'effectivement Firebird commençait à se détaché d'interbase 6 sur certains points. Là j'ai vu qu'il fallait utiliser un EXECUTE STATEMENT si je ne me trompe pas.

    Si c'est bien cela, comment aurais-je pu faire pour trouver l'info autre part que sur des posts ? (attention hein cette question n'est pas là pour critique ou pour refaire le monde , c'est juste histoire que j'arrête de déranger les gens à l'avenir hehe).

    Voilou voilou.

  4. #4
    Expert confirmé
    Avatar de qi130
    Homme Profil pro
    Expert Processus IT
    Inscrit en
    Mars 2003
    Messages
    3 949
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 65
    Localisation : France

    Informations professionnelles :
    Activité : Expert Processus IT
    Secteur : Finance

    Informations forums :
    Inscription : Mars 2003
    Messages : 3 949
    Par défaut
    Bah oui, c'est pour ça qu'un forum est utile

  5. #5
    Membre Expert

    Homme Profil pro
    Consultant spécialité Firebird
    Inscrit en
    Mai 2002
    Messages
    2 342
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 63
    Localisation : France

    Informations professionnelles :
    Activité : Consultant spécialité Firebird
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Par défaut
    la meilleure doc c'est le livre d'Helen Borrie "the firebird Book"
    et les notes de versions

  6. #6
    Membre averti
    Profil pro
    Inscrit en
    Février 2007
    Messages
    28
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2007
    Messages : 28
    Par défaut
    merci de l'info

    P.S : comment je peux faire pour mettre à jour la FAQ de FireBird/interbase ? car je serai tenté de mettre tout ce que j'ai trouvé ces 5 dernière heures et que je pense que ça pourrait être utile d'être dans la FAQ

    (enfin "que je mette à jour", je pense surtout que je dois m'adresser à qqun ), genre toi qui130

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

Discussions similaires

  1. Syntaxe Trigger before update
    Par dcabe dans le forum PL/SQL
    Réponses: 8
    Dernier message: 21/07/2008, 09h53
  2. Syntaxe Trigger Mysql / Transact SQL de SQL Server
    Par Flashball dans le forum SQL Procédural
    Réponses: 8
    Dernier message: 13/03/2008, 15h23
  3. Problème de syntaxe trigger
    Par Nimothenicefish dans le forum PL/SQL
    Réponses: 14
    Dernier message: 24/01/2008, 11h13
  4. Pb de syntaxe trigger/begin.. end ?
    Par leup dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 19/01/2007, 14h04
  5. syntax error before '!' token
    Par titmael dans le forum C
    Réponses: 18
    Dernier message: 10/11/2006, 23h07

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