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

SDK Discussion :

Obtenir dynamiquement dans le code la requête SQL définie dans le report [C#]


Sujet :

SDK

  1. #1
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut Obtenir dynamiquement dans le code la requête SQL définie dans le report
    Bonjour à tous,

    Dans mon application, j'ai à charger des états Cystal Reports de façon dynamique. Ces derniers sont déjà créé et stocké dans un répertoire avec la mise en page, la connexion aux données, etc...

    Le problème est que les contraintes de sécurité de mon application font que je ne peux pas laisser l'état se connecter à sa source de données comme un grand, et que je dois savoir ce dont il a besoin (sa requête définie), récupérer ces données et les lui fournir.

    J'ai trouvé une solution lorsque la requête SQL de l'état est sous forme d'un select :
    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
     
               //on récupère la requête SQL définie dans le fichier de Report
                string selectQuery = "SELECT ";
                string fromQuery = "FROM ";
     
                foreach (Table table in report.Database.Tables)
                {
                    foreach (DatabaseFieldDefinition field in table.Fields)
                    {
                        selectQuery += string.Format("{0}.{1}, ", table.Name, field.Name);
                    }
                    fromQuery += string.Format("{0}, ", table.Name);
                }
     
                selectQuery = selectQuery.Remove(selectQuery.Length - 2);
                fromQuery = fromQuery.Remove(fromQuery.Length - 2);
     
                string sqlQuery = string.Format("{0} {1}", selectQuery, fromQuery);
    Ainsi je récupère bien ma requête SQL de type SELECT, et je peux l'exécuter dans mon code.

    Le problème se pose quand la requête de l'état se base non plus sur un SELECT sur une table/vue, mais sur l'éxecution sur une procédure stockée. Car le nom de la procédure se retrouve, dans mon bout de code ci-dessus, en nom de table, et je n'arrive pas à dissocier le fait qu'il s'agisse d'une requête de type SELECT table/vue ou EXEC procédure stockée.

    Existe t'il un moyen de récupérer directement via les classes et méthodes des assemblys CrystalDecisions.xxx la requête SQL telle qu'elle est définie dans le report.
    Merci

  2. #2
    Membre habitué Avatar de obitskater
    Profil pro
    Développeur .NET
    Inscrit en
    Février 2008
    Messages
    163
    Détails du profil
    Informations personnelles :
    Âge : 36
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Février 2008
    Messages : 163
    Points : 132
    Points
    132
    Par défaut
    J'ai trouvé une solution alternative qui me permet de dissocier une requête se basant sur un SELECT ou sur une procédure stockée.

    En effet la classe CrystalDecisions.CrystalReports.Engine.Table contient une propriété nommée Location qui est définie à :
    -Nom de la table, lorsque la requête de l'état se base sur un SELECT simple.
    -Proc(Nom de la PS), lorsque elle se base sur une procédure stockée.

  3. #3
    Futur Membre du Club
    Femme Profil pro
    Étudiant
    Inscrit en
    Juin 2012
    Messages
    4
    Détails du profil
    Informations personnelles :
    Sexe : Femme

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juin 2012
    Messages : 4
    Points : 5
    Points
    5
    Par défaut
    SVP vous pouvez me donner le code que vous avez écrit j'en ai vraiment besoin de ce bout de code pour terminer mon application

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

Discussions similaires

  1. Requête SQL UPDATE dans VBA
    Par Pingouin22 dans le forum Requêtes et SQL.
    Réponses: 6
    Dernier message: 23/09/2022, 10h37
  2. Réponses: 2
    Dernier message: 21/01/2013, 09h04
  3. Faire appel dans le code cs à un control créé dans le code XAML
    Par TERRIBLE dans le forum Windows Presentation Foundation
    Réponses: 4
    Dernier message: 26/08/2010, 21h08
  4. Erreur dans code et requête sql
    Par majudis dans le forum VBA Access
    Réponses: 1
    Dernier message: 07/07/2010, 19h33
  5. [SQL] erreur dans la requette SQL ou dans le code PHP
    Par jack_1981 dans le forum PHP & Base de données
    Réponses: 19
    Dernier message: 11/07/2006, 21h21

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