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

Forms Oracle Discussion :

Créer un bloc "Interrogation de clause From"


Sujet :

Forms Oracle

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut Créer un bloc "Interrogation de clause From"
    Bonjour,

    je souhaite baser un bloc sur une requête dont la clause FROM et WHERE sont amenées à être modifiées mais pas le SELECT.

    J'ai donc pris "Interrogation de clause From", et mes questions sont :

    Que doit contenir la propriété "Nom de la source d'interrogation" ? La requête entière ? Juste le FROM ?

    Dans colonne source de données d'interrogation je mettrais donc les colonnes du SELECT avec l'alias de la table ?

    et la clause WHERE dans "Clause Where" ?

    Du coup après je voudrais mettre 3 champs textes pour mes 3 colonnes, je dois gérer ces 3 champs textes comme des champs non basés ? Et donc gérer manuellement le EXECUTE_QUERY, UPDATE, INSERT, etc ?

    Merci pour toutes vos réponses.
    MacBen

  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
    le problème c'est que le FROM ne peut pas être dynamique. Il faudrait que tu explique d'avantage le besoin.

  3. #3
    Membre éclairé Avatar de macben
    Inscrit en
    Mars 2004
    Messages
    546
    Détails du profil
    Informations personnelles :
    Âge : 42

    Informations forums :
    Inscription : Mars 2004
    Messages : 546
    Par défaut
    Citation Envoyé par orafrance
    le problème c'est que le FROM ne peut pas être dynamique. Il faudrait que tu explique d'avantage le besoin.
    J'ai un écran qui présente 3 colonnes issues d'une table.

    Et en fonction du choix fait par l'utilisateur sur un écran précédent, il faut que je rajoute des restrictions dans la clause WHERE, restrictions qui peuvent avoir des liens avec d'autres tables.

    Ex : par défaut je fais

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    SELECT NOM_EMPLOYE, PRENOM_EMPLOYE, AGE_EMPLOYE
    FROM EMPLOYES
    Mais si l'utilisateur demande un filtre sur le département de l'employé il faut que je rajoute avant de faire l'EXECUTE_QUERY :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    SELECT e.NOM_EMPLOYE, e.PRENOM_EMPLOYE, e.AGE_EMPLOYE
    FROM EMPLOYES e, DEPARTMENTS d
    WHERE e.ID_EMPLOYE = d.ID_EMPLOYE
    AND d.NUM_DEPARTEMENT = '44'
    Avec DEPARTEMENTS qui n'est pas la liste des départements mais qui contient le rattachement de chaque employé à un département.

    DEPARTMENTS : ID_EMPLOYE, ID_DERPARTEMENT, NUM_DEPARTEMENT

  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
    dans ce cas tu changeras le DEFAULT_WHERE ainsi :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    SELECT e.NOM_EMPLOYE, e.PRENOM_EMPLOYE, e.AGE_EMPLOYE
    FROM EMPLOYES e
    WHERE e.ID_EMPLOYE IN (
                                        SELECT d.ID_EMPLOYE 
                                          FROM DEPARTMENTS d
                                        WHERE d.NUM_DEPARTEMENT = '44')
    ou avec EXISTS

  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
    2 solutions :
    - soit tu gères ta requête différemment (clause exists ou in au lieu d'une jointure) et dans ce cas tu ne modifies que la clause where (=> pas besoin de passer par une clause from) et tu pourras mettre a jour les données sans rien avoir à modifier;


    - soit il faut que tu modifies la propriété QUERY_DATA_SOURCE_NAME avec le built-in set_block_property :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    ma_requete := 'select ... from ... where ...';
    set_block_property ('monBlock', query_data_source_name, ma_requete);
    Dans ce cas, si tu veux mettre a jour les données tu es obligé de renseigner les propriétés du noeud ADVANCED DATABASE de ton bloc.

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 11/05/2010, 14h29
  2. Requete SQL avec une clause FROM variable
    Par aCe_GiK dans le forum Requêtes et SQL.
    Réponses: 8
    Dernier message: 11/04/2006, 13h45
  3. Erreur de syntaxe clause FROM affichage Tous dans Listbox
    Par Lou Pitchoun dans le forum Access
    Réponses: 9
    Dernier message: 21/09/2005, 10h40
  4. [forms] Bloc basé sur une clause from
    Par plaineR dans le forum Forms
    Réponses: 11
    Dernier message: 16/12/2004, 12h02
  5. SYBASE SELECT imbriqué clause FROM
    Par Nicolas Martel dans le forum Sybase
    Réponses: 2
    Dernier message: 19/11/2003, 15h28

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