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

SQL Firebird Discussion :

[PS][FireBird] Paramètre par défaut ds une procédure stockée


Sujet :

SQL Firebird

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mars 2004
    Messages
    33
    Détails du profil
    Informations forums :
    Inscription : Mars 2004
    Messages : 33
    Points : 30
    Points
    30
    Par défaut [PS][FireBird] Paramètre par défaut ds une procédure stockée
    :
    Comment passer un paramètre dont sa valeur est par défaut dans une procédure stockée sous FireBird ou Interbase? :


    j'ai déjà essayé avec Sql Server, et ça fonctionne correctement par exemple la procédure stockée suivante est avec paramètre par défaut @increment int = 1 dont le code est:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    CREATE PROCEDURE dbo.GetNextID ( @entite varchar(30),  @compteur int output, @increment int = 1) AS
    begin
    select @compteur = cpt from sequenceur where entite = @entite
    set @compteur=@compteur +@increment 
    update sequenceur set cpt=@compteur where entite=@entite
    end

    mais lorsque j'ai le réecri sous firebird ou interbase comme suit :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    ALTER PROCEDURE GETNEXTID (
        INCREMENT INTEGER = 1,
        ENTITE VARCHAR(30))
    RETURNS (
        CPT INTEGER)
    AS
    begin
        select compteur from sequenceur where entite = :entite into :cpt;
        cpt = cpt + increment;
        update sequenceur set compteur=:cpt where entite=:entite;
        suspend;
    end

    un message d'erreur dans le syntaxe sql au niveau de la ligne suivante :
    :
    je veux ajouter un paramètre avec une valeur par défaut dans interbase ou firebird. Que Puis je faire ? :

  2. #2
    Membre à l'essai
    Inscrit en
    Mai 2004
    Messages
    17
    Détails du profil
    Informations personnelles :
    Âge : 45

    Informations forums :
    Inscription : Mai 2004
    Messages : 17
    Points : 19
    Points
    19
    Par défaut
    On ne peut pas mettre de valeur par défaut à un paramètre de procédure stockée dans Interbase / FireBird.

    Ce que tu peut faire c'est passer une valeure nulle dans le paramètre et le tester dans le corps de la procèdure.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    ALTER PROCEDURE GETNEXTID ( 
        INCREMENT INTEGER , 
        ENTITE VARCHAR(30)) 
    RETURNS ( 
        CPT INTEGER) 
    AS 
    begin 
        if (Increment is null) then
          begin 
            Increment = 1;
          end
     
        select compteur from sequenceur where entite = :entite into :cpt; 
        cpt = cpt + :increment; 
        update sequenceur set compteur=:cpt where entite=:entite; 
        suspend; 
    end

  3. #3
    Membre expert
    Avatar de Barbibulle
    Profil pro
    Inscrit en
    Octobre 2002
    Messages
    2 048
    Détails du profil
    Informations personnelles :
    Âge : 54
    Localisation : France

    Informations forums :
    Inscription : Octobre 2002
    Messages : 2 048
    Points : 3 342
    Points
    3 342
    Par défaut
    C'est en effet pas possible pour le moment.

    La solution proposé est presque équivallente à un détail près.
    Sous IB/FB INCREMENT sera toujours demandé (obligatoire) lors de l'appel. Alors que sous SQLServer, ces types de paramètres sont en fin et peuvent êtres omis. (Ce qui à mon avis n'est pas une bonne chose...)

Discussions similaires

  1. [C#] Paramètre par défaut dans une fonction
    Par RobinJulie dans le forum Windows Forms
    Réponses: 5
    Dernier message: 18/01/2012, 14h07
  2. Paramètre par défaut dans une fonction
    Par airballman dans le forum MATLAB
    Réponses: 4
    Dernier message: 21/05/2010, 08h41
  3. Paramètre par défaut dans une fonction
    Par Rodie dans le forum Langage SQL
    Réponses: 2
    Dernier message: 12/06/2008, 10h26
  4. Paramètre par défaut d'une methode/fonction template
    Par valefor dans le forum Langage
    Réponses: 4
    Dernier message: 03/08/2007, 11h22
  5. [PLSQL 9i] Paramètre par défaut d'une fonction
    Par lbgl dans le forum Oracle
    Réponses: 8
    Dernier message: 20/02/2007, 16h36

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