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

Outils Firebird Discussion :

into dans stored procedures


Sujet :

Outils Firebird

  1. #1
    Membre régulier Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Points : 90
    Points
    90
    Par défaut into dans stored procedures
    salut !!!
    je vous prie de regarder ce code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
        create procedure enregistrer( mnt_d float,
                                                exo integer
        )
        as
         declare variable mat char (15);
         begin 
              for select matricule from Employe into :mat Do
                insert into Dotation(:mat, :mnt_d,:exo);
         end;
    quand je compile j'obtiens

    Dynamic SQL Error
    SQL error code = -104
    token unknown -char 6 line 49
    ?.

    le nombre de ligne total de ma procedure est 11 et non 49.
    c'est ainsi dans tous mes procedures où il y a le into.
    J'utilise IBAccess.

    je ne vois pas où se trouve l'erreur.

  2. #2
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Un petit oublie de ta part :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    CREATE procedure enregistrer( mnt_d float, exo integer)
        AS
         declare variable mat char (15);
         begin 
     FOR SELECT matricule FROM Employe INTO :mat Do
      INSERT INTO Dotation VALUES(:mat, :mnt_d,:exo);
         end;

  3. #3
    Membre régulier Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Points : 90
    Points
    90
    Par défaut into dans stored procedures
    ça ne change rien !

  4. #4
    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 : 61
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    CREATE procedure enregistrer( mnt_d float, exo integer)
        AS
         declare variable mat char (15);
         begin 
     FOR SELECT matricule FROM Employe INTO :mat 
     DO
     BEGIN
      INSERT INTO Dotation VALUES (:mat, :mnt_d,:exo);
     END
    end;
    ?
    ou alors jette ibacess

  5. #5
    Membre régulier Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Points : 90
    Points
    90
    Par défaut into dans stored procedures
    je ne peux pas le jeter au stade où se trouve mon projet. IBExpert est payant.

    J'ai besoin d'autres alternatives pour pouvoir m'en sortir.

  6. #6
    Membre confirmé Avatar de TryExceptEnd
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Octobre 2006
    Messages
    501
    Détails du profil
    Informations personnelles :
    Sexe : Homme

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Octobre 2006
    Messages : 501
    Points : 574
    Points
    574
    Par défaut
    Cherche un outil "open source" ou "lite" ici :
    Outils pour Firebird

  7. #7
    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 : 61
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    bah, pour lancer des scripts rien de mieux qu' isql

  8. #8
    Membre régulier Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Points : 90
    Points
    90
    Par défaut into dans stored procedures
    j'ai fais ce que makowski m'a suggeré. Nothing. J'ai changé de procedure juste pour voir avec isql
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    create procedure afficher
    As
    begin
      select *
      from Employe
      where matricule is not null;
    end
    devinez quoi: il affiche caractère unknown ; cad il reconnait pas le point virgule;
    si j'enlève le ; il met caractère unknown end,il ne reconnait pas le end.

    il y a une erreur dans ma procedure(lexical ou syntaxique).Pourquoi ce comportement de Firebird? est il lié a un bug? où se trouve mon erreur? Que savez vous sur les procedures stockées dans FB?

  9. #9
    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 : 61
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    GRR
    sous sql il faut changer le TERM

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
     
    SET TERM !!;
    CREATE procedure afficher
    AS
    begin
      SELECT *
      FROM Employe
      WHERE matricule IS NOT NULL;
    end
    !!
    COMMIT !!
    SET TERM ;!!

  10. #10
    Rédacteur
    Avatar de evarisnea
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Juin 2005
    Messages
    1 957
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Cameroun

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : Transports

    Informations forums :
    Inscription : Juin 2005
    Messages : 1 957
    Points : 4 384
    Points
    4 384
    Par défaut

    Citation Envoyé par Moine Voir le message
    je ne peux pas le jeter au stade où se trouve mon projet. IBExpert est payant.

    J'ai besoin d'autres alternatives pour pouvoir m'en sortir.
    oui mais tu as une version personnelle gratuite.

    ici tu t'enregistres, ils checkent manuellement ton email et puis ils t'envoient les infos pour que tu puisse télécharger le soft.

  11. #11
    Membre régulier Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Points : 90
    Points
    90
    Par défaut into dans stored procedures
    Troisième jour que je suis dessus mais je lâche pas .

    Je vais essayer IBExpert version personnelle. IBAccess ne reconnait même pas le mot clé TERM. Je peux pas donc utiliser SET TERM. Bizard hein ?
    Ce qui est encore etrange c'est qu'avec ISQL le SET TERM ne pose pas de problème mais dès qu'une clause into apparait,paff!!!! error code = -104 token unknown line 1 char 5 TERM.

    Mais on m'a dit que souvent avec FB il faut sauvegarder et restaurer la BD pour reinitialiser les compteurs. Quels compteurs? je sais pas. Ma BD est quand même 'gigantesque'

    25 tables
    10 vues
    12 trigger
    6 generateurs
    quelques exceptions
    15 procedures stockées prevus mais pour l'instant je bloque dessus à cause du INTO. Est ce que la taille de ma BD peut être à l'origine? Si je fais une PS Avec ISQL ou IBAccess sans le INTO ça passe. Mais .....brrrr!!!!!!!!!

    Merci de me dire ce que vous en pensez.

  12. #12
    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 : 61
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 715
    Points
    3 715
    Par défaut
    Citation Envoyé par Moine Voir le message
    Mais on m'a dit que souvent avec FB il faut sauvegarder et restaurer la BD pour reinitialiser les compteurs.
    Merci de me dire ce que vous en pensez.
    Souvent non, mais les modififications sur la structure sont limitées à 255 par table

    et ce que j'en pense, c'est que tu fais une faute de frappe quelque part
    ça par exemple, cela passe très bien
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    SET TERM ^^;
    CREATE PROCEDURE BIDON (CUST_NO Integer)
    AS
    declare variable VCOUNTRY varchar (15);
    BEGIN
    FOR SELECT COUNTRY FROM COUNTRY INTO :VCOUNTRY DO
    BEGIN
      INSERT INTO CUSTOMER (CUST_NO,CUSTOMER)
      VALUES (NULL,:VCOUNTRY);
    END
    END ^^
    SET TERM ;  ^^

  13. #13
    Membre régulier Avatar de Moine
    Inscrit en
    Mars 2006
    Messages
    210
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 210
    Points : 90
    Points
    90
    Par défaut into dans stored procedures
    Eureka !!!!!!

    C'est IBAccess le problème pas FireBird. C'est en consultant les PS de la BD
    exemple EMPLOYEE.FDB que j'ai vu le hic. Si j'ouvre directement la fenêtre d'edition des PS j'arrive à faire toutes les modifications que je veux par contre si j'ouvre le "SQL windows" de IBAccess crash !!!!!! Donc j'ai mis en cause la fiabilité de ce cette ....fenêtre. Chose salvateur. C'etait pas le INTO le problème mais les deux points qui le suivent, IBAccess c'est à dire "SQL windows" ne les connait pas ainsi que le TERM.

    Pour creer un PS avec IBAccess lancer la fenêtre "SQL Windows" (le bouton de lancement apparait dès que vous vous connectez à la BD) ensuite tapez votre PS sans le body(vous pouvez tapez le body s'il n'y a pas le INTO) après selectionné Stored Procedures et cliquez sur nouveau,tapez alors le body avec le INTO et autant de deux points : que vous le voulez.

    Si vous selectionnez Stored procedures et cliquez sur Nouveau vous n'aurez que la possibilité de creer une PS avec un seul argument.Que feriez vous si vous avez plusieurs arguments?

    IBAccess est truffé de Bug ou c'est moi qui l'ai mal installé. Mefiez de IBAccess.

    En cherchant à resoudre mon problème j'ai compris beaucoup de chose.

    A mackowski
    A TryExcept
    A Evarisnea

    Je dis

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

Discussions similaires

  1. Réponses: 1
    Dernier message: 14/07/2012, 12h16
  2. Erreur dans une store procedure
    Par java250r dans le forum MS SQL Server
    Réponses: 6
    Dernier message: 04/07/2012, 18h59
  3. Commit/rollback dans les stored procedures
    Par mcurtis dans le forum PL/SQL
    Réponses: 6
    Dernier message: 21/07/2008, 09h37
  4. Stored Procedure dans VBA
    Par DPhBxl dans le forum Requêtes et SQL.
    Réponses: 1
    Dernier message: 19/03/2008, 15h42
  5. Réponses: 4
    Dernier message: 16/08/2007, 23h13

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