Précédent   Forum des professionnels en informatique > Bases de données > Firebird > SQL
SQL Forum d'entraide sur le SQL pour Firebird
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 04/12/2007, 21h17   #1
Invité régulier
 
Inscription : février 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 28
Points : 7
Points : 7
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) :

Citation:
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, :

Citation:
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 :
Citation:
*** 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
nozostan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 21h29   #2
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
L'affectation se fait par "=" et pas par ":=" (on n'est pas sous Delphi)
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 21h56   #3
Invité régulier
 
Inscription : février 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 28
Points : 7
Points : 7
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.
nozostan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 22h57   #4
Expert Confirmé Sénior
 
Avatar de qi130
 
Homme Pierre
Ingénieur qualité méthodes
Inscription : mars 2003
Messages : 3 726
Détails du profil
Informations personnelles :
Nom : Homme Pierre
Âge : 51
Localisation : France

Informations professionnelles :
Activité : Ingénieur qualité méthodes
Secteur : Finance

Informations forums :
Inscription : mars 2003
Messages : 3 726
Points : 4 739
Points : 4 739
Bah oui, c'est pour ça qu'un forum est utile
__________________
"Il n'y a pas de bonnes réponses à une mauvaise question." (M. Godet)
-----------------------
Pensez à cloturer votre sujet - Aucune réponse aux sollicitations techniques par MP
Usus magister est optimus
qi130 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 04/12/2007, 23h41   #5
Expert Confirmé

 
Homme Philippe Makowski
Consultant spécialité Firebird
Inscription : mai 2002
Messages : 2 215
Détails du profil
Informations personnelles :
Nom : Homme Philippe Makowski
Âge : 49
Localisation : France

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

Informations forums :
Inscription : mai 2002
Messages : 2 215
Points : 3 318
Points : 3 318
la meilleure doc c'est le livre d'Helen Borrie "the firebird Book"
et les notes de versions
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/12/2007, 00h53   #6
Invité régulier
 
Inscription : février 2007
Messages : 28
Détails du profil
Informations forums :
Inscription : février 2007
Messages : 28
Points : 7
Points : 7
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
nozostan est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 11h08.


 
 
 
 
Partenaires

Hébergement Web