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

Installation Firebird Discussion :

[Firebird 2.1]Extension du langage


Sujet :

Installation Firebird

  1. #1
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 13
    Points
    13
    Par défaut [Firebird 2.1]Extension du langage
    Bonjour tout le monde c'est encore moi,

    Maintenant que je sais faire ma propre distribution Firebird, je cherche à implémenter l'instruction GOTO dans le code. Donc j'ai regardé un peu le code source dans src\dsql il y a le fichier parse.y qui correspond à la grammaire du langage où sont spécifié tous les tokens ainsi que leur syntaxe. Puis dans gen.cpp, on trouve les actions correspondantes à la syntaxe. Cependant n'ayant aucune connaissance en grammaire de langage et ne connaissant pas la structure de Firebird, J'aimerais savoir si il y a quelqu'un de compétent sur ce forum pour pouvoir m'aider à comprendre. Si tel est le cas merci de bien vouloir répondre à ce post ou bien m'envoyer un mail en privé. Merci d'avance, bonne journée tout le monde.

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

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    la liste devel est faite pour cela
    http://www.firebirdsql.org/index.php?op=lists
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

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

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    mais pourquoi GOTO ?
    on peu très bien s'en passer

    cf par exemple http://www.developpez.net/forums/d70...edure-stockee/

    et par ailleurs, l'ajout de GOTO a été rejeté par le projet
    et à juste raison
    http://tracker.firebirdsql.org/browse/CORE-1351
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  4. #4
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    re Makowski,

    J'ai besoin d'ajouter le GOTO car dans ce genre de situation :

    * ... { //Debut B
    * goto B
    * ...
    * A: { //Debut A
    * ...
    * B: } // Fin B : Erreur
    * ...
    * goto A
    * ... } // Fin A

    il est impossible de remplacer par des boucles. Et pour que tu soit au courant je hais les GOTO. C'est de la programmation spaghetti et c'est très dangereux de coder comme ça. Cependant je suis en stage et c'est pas moi qui fait les règles. Moi on me dit qu'il faut essayer de faire le GOTO dans le source, j'exécute . Ca serait que moi ça ferait un moment que j'aurais gicler les GOTO. Ils ont plus de 500 procédures stockées avec minimum deux GOTO par procédure stockée. Il est possible d'en gérer la plupart par des CONTINUE et des LEAVE. Mais dans le cas ci-dessus c'est mort.

  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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    c'est faux, dans ce cas, il suffit de découper en plusieures procédures

    note : ne pas oublier de respecter la licence de Firebird
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  6. #6
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Oui je suis d'accord le problème est qu'au niveau du temps c'est pas réalisable. Sachant qu'il y une 50ène de procédure utilisant ce schéma. Il va falloir que je scinde ces 50 procédures manuellement. Et quand bien même je le ferais, un logiciel se base sur les procédures stockées et si je scinde en 2 mes procédures, cela nécessite une réécriture de l'application. Pour information, je bosse sur une base de données d'un ERP donc c'est pas des petites procédures de 20 lignes.

  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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    Citation Envoyé par O Oøps O Voir le message
    Et quand bien même je le ferais, un logiciel se base sur les procédures stockées et si je scinde en 2 mes procédures, cela nécessite une réécriture de l'application.
    non pas forcément
    une procédure pouvant appeller une autre procédure, cela revient à faire un goto

    mais bon
    ce que j'en dis
    le problème c'est qu'en modifiant Firebird dans un sens où il n'ira pas, cela rend ton fork plus difficilement maintenable par rapport aux evolution du mainstream
    c'est une question de pérénité

    rappel de la licence : si vous modifez le code, et que vous distribuez la solution se basant sur ce nouveau code, il faut que ce code soit publié aussi

    http://www.firebirdsql.org/index.php?op=doc&id=idpl
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  8. #8
    Membre à l'essai
    Profil pro
    Inscrit en
    Avril 2009
    Messages
    22
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2009
    Messages : 22
    Points : 13
    Points
    13
    Par défaut
    Merci pour tes précieux conseils makowski, je suis entièrement d'accord avec toi. Je vais essayer de voir avec mon tuteur voir si y a pas moyen d'arrêter de perdre du temps à essayer d'implémenter ce GOTO et d'aller dans un sens plus bénéfique pour le code de leurs procédures stockées. Si tu peux me link un exemple pour dissocier l'exemple que je t'ai montrer en deux procédures, je veux bien que tu me le transmette car je vois pas trop comment on fait.Merci bonne journée.

  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 : 60
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2002
    Messages : 2 342
    Points : 3 712
    Points
    3 712
    Par défaut
    peut être que dans ce cas c'est plutot une procédure maitre et deux autres procédures appelées depuis celle ci

    plus une meilleure gestion des erreurs
    Philippe Makowski
    IBPhoenix - Firebird
    Membre de l'April

  10. #10
    Membre chevronné Avatar de chaplin
    Profil pro
    Inscrit en
    Août 2006
    Messages
    1 215
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2006
    Messages : 1 215
    Points : 1 819
    Points
    1 819
    Par défaut
    Citation Envoyé par O Oøps O Voir le message
    Merci pour tes précieux conseils makowski, je suis entièrement d'accord avec toi. Je vais essayer de voir avec mon tuteur voir si y a pas moyen d'arrêter de perdre du temps à essayer d'implémenter ce GOTO et d'aller dans un sens plus bénéfique pour le code de leurs procédures stockées. Si tu peux me link un exemple pour dissocier l'exemple que je t'ai montrer en deux procédures, je veux bien que tu me le transmette car je vois pas trop comment on fait.Merci bonne journée.
    Tu identifies dans le bloc d'instructions appelé par GOTO toutes les variables de "travail" d'entrée et de sortie, cela va déterminer le prototype de ta procédure, ensuite tu déplaces tout le code du bloc d'instruction dans la procédure stockée.

Discussions similaires

  1. [Objective-C] surcouche, extension, langage propre
    Par Trankille dans le forum Objective-C
    Réponses: 1
    Dernier message: 30/07/2011, 09h32
  2. [langage] Je cherche un bon livre ?
    Par Anonymous dans le forum Langage
    Réponses: 13
    Dernier message: 09/04/2003, 13h16
  3. Comparer des fichiers de données : Quel Langage ?
    Par Anonymous dans le forum Langages de programmation
    Réponses: 6
    Dernier message: 24/04/2002, 22h37
  4. Cours, tutoriels, logiciels, F.A.Q,... pour le langage SQL
    Par Marc Lussac dans le forum Langage SQL
    Réponses: 0
    Dernier message: 04/04/2002, 10h21

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