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

C# Discussion :

souci fonction "concatener"


Sujet :

C#

  1. #1
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Points : 3
    Points
    3
    Par défaut souci fonction "concatener"
    Bonjour,

    Je suis en charge d'un développement et je me heurte à une fonction que je ne connais pour l'instant pas: concatener dans le code j'ai

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    requete = "SELECT DISTINCT T_SITE.INDICE_SITE," +
                            " T_SITE.LIBELLE_SITE," +
                            "," + concatener(new string[] { " T_SITE.NUMERO_REFERENCE", "T_SITE.LIBELLE_SITE", "T_ORGANE.LIBELLE_ORGANE" }, "SITE_ORGANE") +
                            "," + concatener(new string[] { "T_SITE.INDICE_SITE", "T_COM.INDICE_COM" }, "SITE_COM") +
                            " from T_COM,T_SITE,T_SITE_COM,T_VAR_VALEUR,T_VARIABLE,T_VARIABLE_LIBELLE,T_ORGANE" +
                            " where T_VARIABLE_LIBELLE.INDICE_TABLE_VAR=7" +
                           " and T_COM.INDICE_ORGANE=T_ORGANE.INDICE_ORGANE";
    La requête en elle même ne me pose pas de problème, malheureusement ce qui me perturbe est cette fonction en plein milieu.
    j'ai déjà regarder la définition de cette fonction sans y voir plus clair...
    Quel est censé être l'impact sur la requête? Le but?

    Si quelqu'un pouvait m'éclairer... Merci d'avance!

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    j'ai déjà regarder la définition de cette fonction sans y voir plus clair...
    Bah vu que nous on ne connait pas la définition de cette fonction, on y voit encore moins clair

  3. #3
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Ah ouai, oublié...

    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
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
        private string concatener(string[] P_champs_1,string P_champs_1_2)
        {
            string L_retour = "";
            int L_parcours = 0;
            if (ConfigurationManager.AppSettings["typebdd"] == "4")
            {
                L_retour += "CONCAT_WS('-',";
            }
            while (L_parcours < P_champs_1.Length)
            {
                L_retour += "CONVERT(nchar,"+P_champs_1[L_parcours]+")";
                L_parcours++;
                if(L_parcours<P_champs_1.Length)
                {
                    switch (ConfigurationManager.AppSettings["typebdd"])
                    {
                        case "1":
                            //Bdd firebird
                        case "2":
                            //Bdd Oracle
                            L_retour += "  || ' - ' || ";
                            break;
                        case "3":
                            //Bdd SQL Serveur
                            L_retour += "  + ' - ' + ";
                            break;
                        case "4"://Bdd MySQL
                            L_retour += ",";
                            break;
                    }
                }
            }
            switch (ConfigurationManager.AppSettings["typebdd"])
            {
                case "1"://Bdd firebird
                case "2"://Bdd Oracle
                case "3"://Bdd SQL Serveur
                    L_retour += " as " + P_champs_1_2;
                    break;
                case "4"://Bdd MySQL
                    L_retour += ") as " + P_champs_1_2;
                    break;
            }
            return L_retour;
        }

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Quelle horreur ce code

    Apparemment ça sert à générer le SQL pour faire la concaténation de plusieurs champs en fonction du type de base de données. Le dernier paramètre est le nom de l'alias pour la colonne de résultat

  5. #5
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    ah d'accord, je ne suis pas le seul a trouver ça indigeste... Malheureusement, je dois faire avec...

    Je t'embête une dernière fois, et du coup la concaténation dans la requête si mon SGBD est sql server selon toi cela donnerait quoi?

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Points : 39 749
    Points
    39 749
    Par défaut
    Ca donne une requête qui marche pas (2 virgules qui se suivent...)

    Code SQL : Sélectionner tout - Visualiser dans une fenêtre à part
    SELECT DISTINCT T_SITE.INDICE_SITE, T_SITE.LIBELLE_SITE,,CONVERT(nchar, T_SITE.NUMERO_REFERENCE)  + ' - ' + CONVERT(nchar,T_SITE.LIBELLE_SITE)  + ' - ' + CONVERT(nchar,T_ORGANE.LIBELLE_ORGANE) as SITE_ORGANE,CONVERT(nchar,T_SITE.INDICE_SITE)  + ' - ' + CONVERT(nchar,T_COM.INDICE_COM) as SITE_COM from T_COM,T_SITE,T_SITE_COM,T_VAR_VALEUR,T_VARIABLE,T_VARIABLE_LIBELLE,T_ORGANE where T_VARIABLE_LIBELLE.INDICE_TABLE_VAR=7 and T_COM.INDICE_ORGANE=T_ORGANE.INDICE_ORGANE

  7. #7
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    Ok... Je vais donc revoir ça! Merci

  8. #8
    Candidat au Club
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Septembre 2012
    Messages
    7
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2012
    Messages : 7
    Points : 3
    Points
    3
    Par défaut
    C'est cool grâce à ton indication j'ai pu retrouver la solution. En mettant la requête entière dans SQL Server j'ai vu ce qui clochait. Ça venait de ma base. Merci

Discussions similaires

  1. [Tableaux] souci avec des simples quotes
    Par Jean Fi dans le forum Langage
    Réponses: 6
    Dernier message: 29/03/2006, 20h13

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