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

 Firebird Discussion :

Procédures stockées ou requêtes SQL


Sujet :

Firebird

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut Procédures stockées ou requêtes SQL
    Salut à tous,

    j'utilise actuellement FireBird 1.5.1 avec C++ Builder 6.0 en environnement monoposte, et je me pose la question suivante:

    est-ce une bonne idée que de créer pour chaque requête SQL une procédure stockée, et d'appeller la procédure stockée à la place de la requête?

    J'y vois l'avantage suivants:

    dissociation entre le code C++ et les requêtes, si bien qu'en cas de changement de requête, on n'a pas à recompiler, et si les structures de la table changent, c'est transparent pour le programme qui utilise les procédures...

    Par contre je ne suis pas assez au fait des choses pour y voir des inconvénients, si ce n'est peut-être que les PS sont plus longues que les requêtes directement?

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Sinon j'ai d'autres questions, tant que j'y suis:

    Admettons les tables suivantes:

    Table Sexe
    Index | Sexe
    -----------------
    0 | "Masculin"
    1 | "Féminin"

    Table Personne
    Index | Sexe | Nom
    ----------------------------
    0 | 0 | "Robert"
    1 | 1 | "Sylvie"
    Si je veux afficher à la fois le sexe et le nom de la personne, que vaut-il mieux comme PS:

    une avec un Left Join qui va chercher le nom du sexe correspondant à l'index, ou bien 2 PS: 1 qui retourne le nom du sexe, et qu'on utilise avant le SUSPEND dans 1 PS principale sans Left Join?

    Ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT p.Nom,s.Sexe FROM Personne p LEFT JOIN Sexe s ON s.Index = p.Index INTO :NOM_PERSONNE,:SEXE_PERSONNE;
    SUSPEND;
    ou bien

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    SELECT p.Nom,p.Sexe FROM Personne p INTO :NOM_PERSONNE,:INDEX_SEXE;
     
    EXECUTE PROCEDURE GET_NOM_SEXE :INDEX_SEXE RETURNING_VALUES :NOM_SEXE;
     
    SUSPEND;
    La deuxième solution créant une procédure GET_NOM_SEXE pouvant être utilisée autre part si besoin est...

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2003
    Messages
    311
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : Belgique

    Informations forums :
    Inscription : Février 2003
    Messages : 311
    Points : 337
    Points
    337
    Par défaut
    Allez, vous répondrez à celle là aussi, tant que vous y êtes

    Dans une requête j'ai la séquence suivante:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ... WHERE table.toto IN ('maman','papa','tonton')
    Seulement le nombre de séquences dans le IN n'est pas connu, mais est généré selon le nombre de choix dans une liste...

    Si je les mets directement dans le code, ça fonctionne. Si je génère ma requête, ça merde...

    Et je ne sais pas comment placer les ' pour que ça fonctionne...

    Ex:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    ...WHERE tm.Type_Match IN (:TYPES_MATCHES)
    de quelle forme doit être :TYPES_MATCHES:

    'maman','papa','tonton' => Marche pas
    maman','papa','tonton => Marche pas
    "maman","papa","tonton" => Marche pas

    Je pense avoir tout essayé, et rien n'y fait ça ne fonctionne pas

Discussions similaires

  1. Réponses: 21
    Dernier message: 16/03/2008, 13h17
  2. Réponses: 2
    Dernier message: 01/10/2007, 08h38
  3. Réponses: 11
    Dernier message: 12/04/2007, 22h13
  4. procédures stockées ou requêtes directes
    Par JauB dans le forum MS SQL Server
    Réponses: 1
    Dernier message: 20/11/2006, 11h04
  5. Réponses: 6
    Dernier message: 21/06/2005, 15h06

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