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

WinDev Discussion :

source de données et rubriques avec le même nom


Sujet :

WinDev

  1. #1
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    274
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 274
    Points : 248
    Points
    248
    Par défaut source de données et rubriques avec le même nom
    bonjour

    soit un champ table à remplir avec une requête sql

    soit une requête avec jointure.
    comportant une rubrique CLIENT.Nom et une autre rubrique CONTACT.Nom

    le tout fonctionnant avec des indirections.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    {sNomTable+".COL_" +sNomColonne,indChamp}[nLigneA] = {sdTable+"."+sUneRubrique,indVariable}
    à un certain moment sUneRubrique prend donc la valeur Nom.

    comment distinguer les deux rubriques ? car du coup, je me retrouve avec la même donnée dans deux colonnes différentes.

  2. #2
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Si j'ai bien compris, j'ajouterai un alias pour les deux colonnes dans la requête, par exemple NomClient et NomContact.

    Tatayo.

  3. #3
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    274
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 274
    Points : 248
    Points
    248
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Si j'ai bien compris, j'ajouterai un alias pour les deux colonnes dans la requête, par exemple NomClient et NomContact.

    Tatayo.
    tu veux dire un

    CLIENT.Nom as CLIENTNOM, CONTACT.Nom as CONTACTNOM ou autre chose ?

  4. #4
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Exactement.
    C'est d'ailleurs ce que je fais systématiquement quand j'ai une expression, ou deux colonnes de même nom dans une requête.

    Tatayo.

  5. #5
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    274
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 274
    Points : 248
    Points
    248
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Exactement.
    C'est d'ailleurs ce que je fais systématiquement quand j'ai une expression, ou deux colonnes de même nom dans une requête.

    Tatayo.

    j'en étais quasiment certain, mais bon dans le doute, peut être qu'il y avait un autre truc.
    Vu que tout est fait avec des indirections pour être le plus générique possible, je n'avais rien vu lors de mes tests.

    Tant pis, je vais reprendre mes procédures

  6. #6
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Je ne comprends ce qui te bloque ici.
    Qu'est-ce qui t'empêche de mettre des alias dans la requête, ou d'utiliser des indirections ?

    Tatayo.

  7. #7
    Membre confirmé

    Profil pro
    Inscrit en
    Mars 2002
    Messages
    1 184
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2002
    Messages : 1 184
    Points : 619
    Points
    619
    Par défaut
    Une façon d'éviter cela est de faire précéder le nom du champ d'un préfixe correspondant à la table au moment où on la créée.

    Par exemple pour la table Clients : CLI_ID, CLI_Nom, CLI_Adresse
    Pour la table Contact : CON_ID, CON_Nom

    De même avec les nom de table qui rappellent le nom de la base.

    Les traditions se perdent...
    D'ailleurs avant on parlait de table, de champ (ou de colonne), de ligne. Maintenant on parle de fichiers...

  8. #8
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    C'est (presque) exactement ce que nous faisons (enfin ce que j'impose !).
    Les noms des colonnes dans nos tables sont préfixés par le nom de la table d'origine.
    Par exemple un code stock s'appelle sto_c_code.
    Le presque vient du fait qu'une clé rapportée garde le nom de la colonne dans la table "d'origine". Donc chez nous un code stock s'appelle toujours sto_c_code, quelle que soit la table concernée.
    On retrouve ainsi rapidement les liaisons entre les tables.
    Par contre ça ne résout pas le problèmes des noms de colonnes en double...
    D'où les alias dans les clauses SELECT.

    Tatayo.

  9. #9
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    274
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 274
    Points : 248
    Points
    248
    Par défaut
    Citation Envoyé par Delphi-ne Voir le message
    Une façon d'éviter cela est de faire précéder le nom du champ d'un préfixe correspondant à la table au moment où on la créée.

    Par exemple pour la table Clients : CLI_ID, CLI_Nom, CLI_Adresse
    Pour la table Contact : CON_ID, CON_Nom

    De même avec les nom de table qui rappellent le nom de la base.

    Les traditions se perdent...
    D'ailleurs avant on parlait de table, de champ (ou de colonne), de ligne. Maintenant on parle de fichiers...
    je suis d'accord avec toi.
    mais il y a un historique avec lequel je dois bosser.

  10. #10
    Rédacteur/Modérateur

    Homme Profil pro
    Ingénieur qualité méthodes
    Inscrit en
    Décembre 2013
    Messages
    4 053
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur qualité méthodes
    Secteur : Conseil

    Informations forums :
    Inscription : Décembre 2013
    Messages : 4 053
    Points : 9 392
    Points
    9 392
    Par défaut
    Les alias dans la requête, sans hésitation.

    Par contre, je ne vois pas du tout l'intérêt des indirections.

    Personnellement, quand j'ai des cas comme ça, je me débrouille pour savoir quel nom de colonne correspond à quel titre de colonne, au début du traitement. Puis je ne travaille qu'avec des numéros de colonnes.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Pour i = 1 a nbreColonnes
      table1[nLigne1, numColonneDestination[i] ] = sqllitcol(i)
    fin
    N'oubliez pas le bouton Résolu si vous avez obtenu une réponse à votre question.

  11. #11
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    274
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 274
    Points : 248
    Points
    248
    Par défaut
    Citation Envoyé par tbc92 Voir le message
    Les alias dans la requête, sans hésitation.

    Par contre, je ne vois pas du tout l'intérêt des indirections.

    Personnellement, quand j'ai des cas comme ça, je me débrouille pour savoir quel nom de colonne correspond à quel titre de colonne, au début du traitement. Puis je ne travaille qu'avec des numéros de colonnes.

    Par exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    Pour i = 1 a nbreColonnes
      table1[nLigne1, numColonneDestination[i] ] = sqllitcol(i)
    fin
    En effet je pourrais faire comme tu dis aussi.
    disons que c'est un parti pris pour faire du spécifique.
    La structure des champs table (leurs colonnes) et leur contenu sont dynamique et personnalisable par client (lui même).
    On ne stocke finalement que la requête sql.
    Au chargement de la fenêtre, on construit la table et le contenu qui va bien.

  12. #12
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Bonjour,
    Si la structure de la table et la structure du résultat de la requête sont "identiques", pourquoi ne pas remplir la table directement avec un SqlTable() ?

    Tatayo.

  13. #13
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    274
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 274
    Points : 248
    Points
    248
    Par défaut
    Citation Envoyé par tatayo Voir le message
    Bonjour,
    Si la structure de la table et la structure du résultat de la requête sont "identiques", pourquoi ne pas remplir la table directement avec un SqlTable() ?

    Tatayo.
    car je n'y avais pas pensé! merci
    je vais voir.

  14. #14
    Membre actif
    Inscrit en
    Octobre 2013
    Messages
    274
    Détails du profil
    Informations forums :
    Inscription : Octobre 2013
    Messages : 274
    Points : 248
    Points
    248
    Par défaut
    Citation Envoyé par fffttt Voir le message
    car je n'y avais pas pensé! merci
    je vais voir.

    en fait non, car je ne fais pas de sqlexec (d'où les indirections et non l'ordre sqllitcolonne(i))
    mais je commence par un :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SI HExécuteRequêteSQL(sdTable,hRequêteDéfaut,sREquete) ALORS

  15. #15
    Expert éminent sénior
    Homme Profil pro
    Responsable Données
    Inscrit en
    Janvier 2009
    Messages
    5 198
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 50
    Localisation : France, Hérault (Languedoc Roussillon)

    Informations professionnelles :
    Activité : Responsable Données

    Informations forums :
    Inscription : Janvier 2009
    Messages : 5 198
    Points : 12 774
    Points
    12 774
    Par défaut
    Dans ce cas tu peux utiliser ConstruitTableFichier() qui fait peu ou prou la même chose.

    Tatayo.

Discussions similaires

  1. Source de données XML, travailler avec une liste
    Par whorian dans le forum SSRS
    Réponses: 0
    Dernier message: 14/08/2015, 20h13
  2. Réponses: 3
    Dernier message: 29/12/2008, 15h22
  3. Deux instances avec le même nom.
    Par Denn's dans le forum MS SQL Server
    Réponses: 3
    Dernier message: 14/03/2008, 09h09
  4. Problème pour différencier plusieurs select avec le même nom
    Par vallica dans le forum Général JavaScript
    Réponses: 6
    Dernier message: 24/04/2006, 11h35
  5. Interfaces avec le même nom
    Par myuils dans le forum Langage
    Réponses: 2
    Dernier message: 09/11/2004, 18h18

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