Précédent   Forum des professionnels en informatique > Bases de données > Firebird > Outils
Outils Forum d'entraide sur les outils tiers 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 24/10/2007, 16h54   #1
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut into dans stored procedures

salut !!!
je vous prie de regarder ce code
Code :
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.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 18h16   #2
Membre éclairé
 
Avatar de TryExceptEnd
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 435
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 : 435
Points : 347
Points : 347
Un petit oublie de ta part :
Code :
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;
__________________
Si vous êtes libre, choisissez le Logiciel Libre.
TryExceptEnd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 18h37   #3
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
Par défaut into dans stored procedures

ça ne change rien !
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 18h53   #4
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
Code :
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
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 19h06   #5
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
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.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 20h28   #6
Membre éclairé
 
Avatar de TryExceptEnd
 
Homme
Développeur informatique
Inscription : octobre 2006
Messages : 435
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 : 435
Points : 347
Points : 347
Cherche un outil "open source" ou "lite" ici :
Outils pour Firebird
__________________
Si vous êtes libre, choisissez le Logiciel Libre.
TryExceptEnd est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/10/2007, 20h59   #7
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
bah, pour lancer des scripts rien de mieux qu' isql
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 09h17   #8
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
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 :
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?
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 25/10/2007, 12h12   #9
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
GRR
sous sql il faut changer le TERM

Code :
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 ;!!
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 02h06   #10
Rédacteur/Modérateur
 
Avatar de evarisnea
 
Homme Evaris NGOUZO
Consultant informatique
Inscription : juin 2005
Messages : 1 887
Détails du profil
Informations personnelles :
Nom : Homme Evaris NGOUZO
Localisation : Cameroun

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

Informations forums :
Inscription : juin 2005
Messages : 1 887
Points : 2 799
Points : 2 799

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.
evarisnea est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 09h10   #11
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
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.
Moine est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 09h29   #12
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
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 :
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 ;  ^^
__________________
Philippe Makowski
IBPhoenix - Firebird
Membre de l'April
makowski est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/10/2007, 17h19   #13
Membre du Club
 
Avatar de Moine
 
Inscription : mars 2006
Messages : 172
Détails du profil
Informations forums :
Inscription : mars 2006
Messages : 172
Points : 44
Points : 44
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
Moine 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 10h17.


 
 
 
 
Partenaires

Hébergement Web