2010-03-16 1 views
1

나는의 3 단계에서SSRS 2005의 데이터 기반 구독이 내 저장 프로 시저와 다른 이유는 무엇입니까?

SSRS 2005 년 보고서에 대한 데이터 기반 구독을 정의하기 위해 노력하고있어 설정 당신을 요구하고 있습니다 : 목록을 반환

"명령 또는 쿼리 받는 사람 및 선택적으로 배달 설정을 변경하고 각받는 사람에 대한 매개 변수 값을보고하는 데 사용되는 필드를 반환합니다. "

이 글은 필자가 작성했으며 장애없이 데이터를 반환합니다. 다음을 누르면 DDS에 설정할 모든 변수가있는 설정의 다음 화면으로 넘어 가서 "데이터베이스에서 값 선택"옵션이 있습니다.

이 라디오 버튼을 선택하고를 누릅니다. 드롭 다운. 사용할 수있는 입력란이 없습니다.

이제 SP에서 반환되는 매개 변수의 수를 변경할 수있는 유일한 방법은 SP에 SQL을 nvarchar 변수에 쓰게하고 마지막에는 sql로 변수를 실행하는 것입니다. Management Studio에서이를 테스트했으며 예상되는 필드를 반환합니다. SSRS의 필드 뒤에 이름을 붙이기도했지만 필드 이름을 드롭 다운에 넣지는 않습니다.

필자는 쿼리 본체를 Stored Proc에서 꺼내 SSRS에서 확인한 다음 시도해 보았습니다. 그것도 작동하지 않습니다.

내가 뭘 잘못하고 있는지 알 수있는 사람이 있습니까?

답변

4
당신은 같은 것을 사용하여 저장된 프로 시저를 시작해야 할 수 있습니다

...

CREATE PROCEDURE [GetRecipients] 
AS 

SET NOCOUNT ON 
If 1=0 
BEGIN 
Select CAST(NULL as nvarchar(50)) as RecipientEmail, 
CAST(NULL as integer) as Param1, 
CAST(NULL as nvarchar(10)) as Param2, 
CAST(NULL as DATETIME) as Param3 
END 

여기에 코드를 삽입 ...

End; 

이것은 내가로 사용되는 절차를 필요했다 임시 테이블을 사용하는 SSIS의 데이터 원본 최종 출력의 형식이 맨 위에있는 선택은 If 구조로 인해 절대로 실행되지 않지만 SSIS (및 SSRS)가 출력의 메타 데이터를보고 파생시킬 수 있습니다. SSIS와 SSRS가 메타 데이터를 시도하고 파생시키기 위해 코드에서 첫 번째 항목을 찾고 있기 때문입니다.

+1

귀하의 답변에 투표 할 수 있기를 바랍니다. 실제로 계정이 없으므로 투표 할 수 없습니다. 이게 내 두통을 훌륭하게 해결했다고 말하기에 충분합니다. 너무 감사합니다! – bert

관련 문제