Pregunta

Tengo un informe en el que se ejecuta un procedimiento almacenado:

EXEC ra_spProjectCalendar @Month, @Year, @ProjectID

Proyectólo es una lista desplegable de selección múltiple. Cuando se selecciona un solo proyecto, que funciona bien. Si selecciono varios proyectos, me sale el error:

"Must declare scalar variable "@ProjectID"

Funciona bien cuando lo ejecuto desde la ficha de datos, sin embargo, cuando lo puse en modo de vista previa no tengo problemas.

¿Fue útil?

Solución

Tengo algo similar a trabajar con la construcción de la consulta como una expresión - en su ejemplo

="EXEC ra_spProjectCalendar @Month = '" & Parameters!Month.Value & "',@Year='" & Parameters!Year.Value & "',@ProjectID = '" &  Join(Parameters!ProjectID.Value, ",") & "'"

Algunos código en el SP objetivo divide la cadena de selección múltiple en una tabla temporal que se utiliza en une para crear la salida.

No puedo recordar por qué terminamos haciendo de esta manera - que estaba justo en el inicio de nuestro traslado a SSRS y las cosas han cambiado un poco desde - pero puede haber sido el problema que usted describe

Otros consejos

Había producirse el mismo error: Debe declarar variable escalar

.

Ahora comprendo el primero que debe verificar es que cuando se introduce la consulta como texto, o el procedimiento almacenado como un tipo de procedimiento almacenado, que ssrs crea automáticamente la entrada parametro en la pestaña de parámetros de las propiedades del conjunto de datos. Si no los crea, no puede leer su consulta correctamente.

En mi caso yo estaba utilizando OPENQUERY para llamar a un cubo de servicios de análisis y hacer referencia a los nombres de campos que contienen una gran cantidad de corchetes. Desafortunadamente SSRS ama a formatear el código de modo que muy bien formateado "[Measures]. [SomeMeasure]" se convierte en este horrible desastre carácter de escape [[Medidas]]. [Somemeasure]]]

Si edita esa consulta en otra herramienta a continuación, volver a copiar de nuevo a ssrs, entonces ssrs no pueden leer que la sintaxis! A pesar de que lo genera! Así que eliminar todos los corchetes adicionales y reemplazar las comillas dobles y el auge funciona de nuevo y genera sus parámetros.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top