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 :

Envoi du nom d'un fichier comme paramètre


Sujet :

Firebird

  1. #1
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Points : 50
    Points
    50
    Par défaut Envoi du nom d'un fichier comme paramètre
    Bonsoir tt le monde,

    J'ai déjà posé cette question il y longtemps.

    Est ce-qu'on peut envoyer le nom d'une table comme paramètre à une procédure stockée.

    Je m'explique :

    Dans mon application j'ai 15 fichiers temporaires de même structure :
    t0001,t0002,...,t0015
    J'ai une ps définit comme suite:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    SET TERM ^ ;
     
    CREATE PROCEDURE UpdateFile (
        xfile CHAR(10)
        )
    AS
    définition de mes variables
    begin
      insert into :xfile (....) values (....);
    end
    ^
    SET TERM ; ^
    A l'appel de la ps je met :

    execute procedure ('T0001');
    ou
    execute procedure ('T0002');
    ou
    ....
    execute procedure ('T0015');

    Est-ce que ça marche avec les nouvelles version de firebird.
    NB. Je travail avec la version 2.0.0.12748

  2. #2
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonsoir,

    Utilisez un EXECUTE STATEMENT :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    EXECUTE STATEMENT 'INSERT INTO ' || :xfile ||'(champ1,champ2) VALUES ('
    ||V1 ||','||V2||')';
    V1,V2 = variable1, variable2
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  3. #3
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Points : 50
    Points
    50
    Par défaut
    Merci,

    Je vais essayez.

  4. #4
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Points : 50
    Points
    50
    Par défaut
    ok ça marche

    Merci

  5. #5
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Points : 50
    Points
    50
    Par défaut
    Bonjour tout le monde,

    J'ai un problème lorsque j'utilise la boucle qui scane une table (for select .. do ...) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
        execute statement 
    'for select dtmvt,datech,libelle1,libelle2,debit,credit from '  || :xfile || 
        'where code=:xCode and (dtmvt  between  :xDt1 and :xDt2)
             INTO  :xdtmvt,:xdatech,:xlibelle1,:xlibelle2,:xdebit,:xcredit
        do
        begin
            insert into P001 (dtmvt,datech,cdmvt,libelle1,libelle2,debit,credit)
            values (:xdtmvt,:xdatech,:xcdmvt,:xlibelle1,:xlibelle2,:xdebit,:xcredit);
        end'

  6. #6
    Membre éclairé Avatar de freud
    Homme Profil pro
    Développeur
    Inscrit en
    Mai 2002
    Messages
    1 271
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Algérie

    Informations professionnelles :
    Activité : Développeur

    Informations forums :
    Inscription : Mai 2002
    Messages : 1 271
    Points : 681
    Points
    681
    Par défaut
    Bonjour,

    Essayez avec ca :
    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    FOR EXECUTE STATEMENT 'select dtmvt,datech,libelle1,libelle2,debit,credit from '  || :xfile || ' where code = ' || :xCode || ' and (dtmvt  between  ''' || :xDt1 || ''' and ''' || :xDt2 || ''')';
    INTO  :xdtmvt,:xdatech,:xlibelle1,:xlibelle2,:xdebit,:xcredit
     
    Do
    Begin
    insert into P001 (dtmvt,datech,cdmvt,libelle1,libelle2,debit,credit)
            values (:xdtmvt ,:xdatech ,:xcdmvt ,:xlibelle1 ,:xlibelle2 ,:xdebit ,:xcredit);
    End
    Si quelqu'un t'a offensé, ne cherche pas à te venger; assieds-toi au bord de la rivière et, bientôt, tu verras passer son cadavre.

    Lao Tseu - un sage chinois

    Celui qui lutte contre les monstres doit veiller à ne pas le devenir lui-même.
    Et quand ton regard pénètre longtemps au fond d'un abîme, l'abîme, lui aussi, pénètre en toi.

    Friedrich Nietzsche - Par délà le bien et le mal

  7. #7
    Membre du Club
    Profil pro
    Développeur informatique
    Inscrit en
    Juin 2007
    Messages
    144
    Détails du profil
    Informations personnelles :
    Localisation : Maroc

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

    Informations forums :
    Inscription : Juin 2007
    Messages : 144
    Points : 50
    Points
    50
    Par défaut
    Merci freud.

    Je vais faire un essai

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

Discussions similaires

  1. Réponses: 6
    Dernier message: 24/05/2013, 16h25
  2. passer nom de fichier comme paramètre
    Par info_sara dans le forum Débuter
    Réponses: 6
    Dernier message: 13/05/2012, 00h40
  3. Réponses: 8
    Dernier message: 12/08/2011, 09h25
  4. passer le nom d'une fonction comme paramètre d'une autre fonction?
    Par med_alpa dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 11/03/2010, 12h57
  5. Réponses: 3
    Dernier message: 02/04/2009, 12h43

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