J'ai un problème et je ne sais pas s'il est avec ma procédure stockée ou avec le rapport de type SSRS qui apparaît par rapport aux données de sortie dans cette procédure stockée. Lorsque j'exécute cette procédure stockée, je vois la sortie que je m'attends à voir. Je remarque que cela revient et entier. Est-ce une cause de préoccupation? En outre, lorsque j'essaie de faire une déclaration contre la sortie de ces données et d'utiliser des agrégats autres que d'abord, je ne peux pas obtenir d'agrégats à fonctionner.
Qu'est-ce que je fais mal ou est la procédure stockée correcte? P> Je peux voir mes résultats car je m'attends à les voir. Lorsque je mets le jeu de données en SSRS et que je souhaite utiliser l'un des agrégats, je ne peux voir que le premier agrégat lorsque je gère mon rapport. Si j'utilise l'un des autres, comme Min, Max, AVG, etc., et gèrent mon rapport, je ne vois aucun des autres agrégats montrent dans mon rapport. C'est juste une place vive dans le rapport. Longue histoire courte, je me demandais si ma procédure stockée avait quelque chose à voir avec l'un des autres agrégats de ne pas pouvoir courir. p> p>
3 Réponses :
Lorsque j'exécute cette procédure stockée, je vois la sortie que je m'attends à voir. P> blockQuote>
Cela signifie que la procédure stockée fonctionne bien. Si vous ne voyez pas les résultats dans les SSRS, le problème est dans les SSRS. P>
trop longtemps pour un commentaire, alors ça va. p>
Premièrement, vous avez besoin d'un examen de code sérieux. Ce n'est pas l'endroit pour cela. Un bon ensemble d'examinateurs proposera des commentaires utiles sur l'amélioration de votre code, améliorer vos compétences, rendre votre code plus efficace, etc. P>
Des choses simples comme Arrêtez d'utiliser RTRIM avec des types de données de flotteur (par exemple, RTRIM (SD. [Tolérance [hors Centre - Target]). Pourquoi faites-vous cela? Cette colonne est définie comme float. Vous avez défini partout. Pourquoi? Vous avez défini C'est comme char (30) partout dans votre code - quel est le type de données réel dans votre schéma? S'il a une longueur variable, utilisez VARCHAR (surtout dans votre paramètre). P>
Pourquoi passez-vous des valeurs DateTime comme des chaînes pour les paramètres? Et vous faites une autre erreur typique - 23:59:59 n'est pas le plus grand composant de temps possible de DateTime ou DateTime2. N'utilisez pas de limite supérieure inclusive - utilisez une limite supérieure exclusive pour éviter ce genre de chose. BTW peut être que votre conversion implicite forcée de vos colonnes à flotteur sur String est la source de votre problème. p>
Suivant - Ajoutez "Définir Nocount sur" comme première instruction à chaque procédure stockée et déclenchez-vous. Cela évite d'envoyer le message "X lignes concernées" à l'application exécutant cette logique. p>
Essayez d'ajouter des commentaires utiles pour celui qui doit prendre en charge ce code. Et assurez-vous qu'ils sont à la fois précis et utiles. Vous avez "Créer un CTE pour tenir ..." dans plusieurs endroits. Premièrement, personne ne se soucie généralement de la façon dont vous générez les informations requises. Ensuite, vous utilisez des CTES pour remplir une table temporaire que vous créez. "Créer" s'applique généralement aux objets créés et il est inhabituel d'utiliser ce terme avec un CTE. En fait, vous utilisez de nombreux CTES plutôt que celui (singulier) impliqué dans votre commentaire. p>
Il existe d'autres choses qu'un bon revue de code devrait trouver - certaines meilleures pratiques incluses. p>
Essayez de lancer ou de convertir pour vos opérations. Cela pourrait fonctionner p>
Ce n'est pas le genre de chose qui va dans une réponse. À l'avenir, veuillez le mettre comme un commentaire ou avoir une réponse plus complète
Eh bien, je n'étais pas au courant du protocole mais je ferai
Quand avez-vous ajouté le code dans l'ensemble de données en SSRS, renvoie-t-il plus de données que la première ligne?
Vous avez dit lorsque j'exécute cette procédure stockée, je vois la sortie que je m'attends à voir i>. Alors, quelle est la question? Je remarque qu'il retourne et entier i>. Voulez-vous dire quand vous l'appelez à une application? Si oui, cela signifie succès.
Geovanny - Oui, je peux voir mes résultats car je m'attends à les voir. Lorsque je mets le jeu de données en SSRS et que je souhaite utiliser l'un des agrégats, je ne peux voir que le premier agrégat lorsque je gère mon rapport. Si j'utilise l'un des autres, comme Min, Max, AVG, etc., et gèrent mon rapport, je ne vois aucun des autres agrégats montrent dans mon rapport. C'est juste une place vive dans le rapport. Longue histoire courte, je me demandais si ma procédure stockée avait quelque chose à voir avec l'un des autres agrégats de ne pas pouvoir courir.