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

Oracle Discussion :

[sql] comment utiliser une variable global


Sujet :

Oracle

Vue hybride

imedg [sql] comment utiliser une... 25/04/2006, 23h05
orafrance en créant un package avec les... 26/04/2006, 09h00
plaineR Je ne comprends pas pourquoi... 26/04/2006, 09h23
orafrance Il me semble que j'avais eu... 26/04/2006, 09h31
plaineR Ok, merci pour l'info ;) 26/04/2006, 09h37
Magnus Salut plaineR, Ta... 26/04/2006, 09h37
Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Mars 2006
    Messages
    90
    Détails du profil
    Informations forums :
    Inscription : Mars 2006
    Messages : 90
    Par défaut [sql] comment utiliser une variable global
    salut a tous
    ma question et comment utiliser les variables globaux dans un programme
    mon problem et
    j'ai un formulaire client qui contient un champ num_clt
    et un autre formulaire paiement qui souvre apartire du formulaire client par linstruction open_forms et ce formulaire contient le meme champ num_clt
    ce que je souhaite faire affecter la valaire du champ num_clt de formulaire client dans champ num_clt dans le formulaire paiement
    [FONT='Times New Roman']merci d'avence pour votre aide[/FONT]

  2. #2
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    en créant un package avec les variables dans la partie spécification. Il suffit alors de créer une fonction qui retourne le résultat de ces variables.

    J'avais donné cet exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    CREATE OR REPLACE PACKAGE Context_Package AS
      PROCEDURE set_value(v_value_p IN VARCHAR2);
     
      FUNCTION get_value RETURN VARCHAR2;
     
      g_mavariable_globale VARCHAR2(30);
     
    END;
    /
    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
    CREATE OR REPLACE PACKAGE BODY Context_Package AS
     
      PROCEDURE set_value(v_value_p IN VARCHAR2) AS
      BEGIN
     
       g_mavariable_globale := v_value_p;
     
      END;
     
      FUNCTION get_value RETURN VARCHAR2 AS
      BEGIN
     
       RETURN g_mavariable_globale;
     
      END;
     
    END;

  3. #3
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Je ne comprends pas pourquoi tu crées une fonction pour récupérer la valeur (sauf si tu en as besoin dans une requête sql) et une procédure pour affecter la valeur. Pourquoi ne pas l'affecter directement ?
    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
     
    SQL> create package pack_dvp as
      2  var_globale number :=2;
      3  end;
      4  /
    Package created.
    SQL> begin
      2  dbms_output.put_line (pack_dvp.var_globale);
      3  pack_dvp.var_globale := 3;
      4  dbms_output.put_line (pack_dvp.var_globale);
      5  end;
      6  /
    2
    3
    PL/SQL procedure successfully completed.
    Est-il déconseillé de faire cela ?

  4. #4
    Expert éminent
    Avatar de orafrance
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    15 967
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 15 967
    Par défaut
    Il me semble que j'avais eu des soucis avec hibernate (J2EE) sans la fonction

  5. #5
    Membre Expert

    Homme Profil pro
    Chef de projet en SSII
    Inscrit en
    Janvier 2004
    Messages
    2 862
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Loire Atlantique (Pays de la Loire)

    Informations professionnelles :
    Activité : Chef de projet en SSII
    Secteur : Conseil

    Informations forums :
    Inscription : Janvier 2004
    Messages : 2 862
    Par défaut
    Citation Envoyé par Fred_D
    Il me semble que j'avais eu des soucis avec hibernate (J2EE) sans la fonction
    Ok, merci pour l'info

  6. #6
    Membre très actif Avatar de star
    Homme Profil pro
    .
    Inscrit en
    Février 2004
    Messages
    940
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Corée Du Nord

    Informations professionnelles :
    Activité : .

    Informations forums :
    Inscription : Février 2004
    Messages : 940
    Par défaut
    affecter la valaire du champ num_clt de formulaire client dans champ num_clt dans le formulaire paiement
    Si j'ai bien compris, il s'agit de formulaires Forms. Dans ce cas pourquoi ne pas passer la valeur de l'item num_clt en paramètre à l'appel de la form paiement et le récupérer ainsi dans ton item de destination au moyen du trigger When-New-Form-Instance ?
    Pas besoin de variable globale !
    Je ne comprends pas pourquoi tu crées une fonction pour récupérer la valeur
    Ce qu'il faut savoir avec Forms, c'est qu'il ne peu pas accèder à une variable de package en base directement. On est obligé de passer par un appel de procédure ou de fonction qui retourne la valeur à la form appellante.
    Si ça peut servir !
    .

  7. #7
    Membre Expert

    Profil pro
    Inscrit en
    Avril 2005
    Messages
    1 673
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Avril 2005
    Messages : 1 673
    Par défaut
    Citation Envoyé par plaineR
    Je ne comprends pas pourquoi tu crées une fonction pour récupérer la valeur (sauf si tu en as besoin dans une requête sql) et une procédure pour affecter la valeur. Pourquoi ne pas l'affecter directement ?
    Est-il déconseillé de faire cela ?
    Salut plaineR,

    Ta question se rapproche beaucoup des contraintes de la POO et des variables privées pour lesquelles on écrit des accesseurs (setValue et getValue) afin de modifier leurs valeurs par des classes externes.

    Mais peut être que je suis complètement à côté de la plaque...

Discussions similaires

  1. [AC-2003] Comment utiliser une variable issue d'un recordset dans une requète SQL
    Par alainwilly dans le forum Access
    Réponses: 1
    Dernier message: 23/03/2012, 20h12
  2. Réponses: 1
    Dernier message: 26/02/2009, 07h11
  3. Comment utiliser une variable globale de dll ?
    Par Chamatho dans le forum Langage
    Réponses: 14
    Dernier message: 29/11/2008, 20h22
  4. [SQL] Comment utiliser une variable
    Par dommm063 dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 06/04/2008, 13h11

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