2012-04-02 2 views
0

나는 제대로 작동 한 매개 변수를 보내 왔다는 보고서가 있습니다. 보고서 매개 변수는 선언 : 나에게 3 개 값의 문자열 배열로 초기화되는 새로운 보고서 매개 변수를 제공ssrs ReportParameter 생성자 문자열 배열 제한?

string[] pclist = new string(){ "A", "B", "C" }; 
ReportParameter pcode = new ReportParameter("pcode", pclist, false); 

합니다. 여태까지는 그런대로 잘됐다. 보고서 내부

는 'PCODE'매개 변수는 '문자열'로 정의되며, 같이 사용됩니다 : 매개 변수의 값은 로그인 한 사람에 따라 변경해야하기 때문에,

... 
and PCode in (@pcode) 
... 

최근 , 우리는 매개 변수가 메서드 호출의 반환 값에서 문자열 배열을 가져 오도록이 코드를 변경했습니다. (이 방법은 데이터베이스로부터의 값을 얻는다)

ReportParameter pcode = new ReportParameter("pcode", FetchParams("X"), false); 

FetchParams ("X") 데이터베이스에서 선별을 수행하고 값의 캐릭터 []를 반환한다. 대부분의 경우 잘 작동합니다. 그러나 때로는 보고서가 실행되지 않습니다 만 오류 메시지를 반환 : 우리가 결정 무엇

The 'pcode' parameter is missing a value 

때때로 값의 수십 FetchParams ("X")에 의해 반환 될 수 있다는 것입니다. 문자열 []의 값 수가 너무 커지면 해당 오류 메시지와 함께 보고서가 실패합니다. 분명히 ReportParameter 객체를 인스턴스화하는 데 사용할 수있는 값의 수에 상한선이 있습니다.

절에 으로 처리 할 수있는 값의 수는 제한적으로 SQL Server 자체에서 제한 될 수 있다고 생각했습니다. 그러나 오류 메시지가이 결론을 지원하지 않는 것 같습니다.

편집 :이 특별한 경우에 시행 착오가 나타났습니다. 33은 문자열 배열의 값 개수에 대한 상한선입니다.

누구든지이 문제에 경험이 있습니까?
ReportParameter ctor에 전달 된 배열의 값 수에 상한값이 있습니까?
더 큰 숫자로 상한을 구성하는 방법이 있습니까?

모든 도움을 주실 수 있습니다. 덕분에 !

답변

0

호 카이, 여러분, 여기이 수수께끼에 대한 진정한 대답이 있습니다.

보고서에 'pcode'라는 매개 변수가 있습니다.
'pcode'매개 변수에는 드롭 다운 값 목록을 만드는 데이터 소스가 있습니다.

이제 보고서를 실행하는 코드가 pcode 매개 변수의 값 목록을 생성합니다.

The 'pcode' parameter is missing a value

:
값의 목록은 데이터 소스의에서 보고서의 목록이 생성 일치하지 않는 값이있는 경우, 보고서에 전달됩니다, 당신은 마음 마비 SSRS 오류 메시지가

ug-ly.하지만 그건 나중에 m 달러입니다.

레코드의 경우 ReportParameter ctor ...로 전달되는 문자열 배열의 값 개수에 제한이없는 것처럼 보입니다. 오류 메시지는 ReportParameter를 생성하는 코드가 아닌 ssrs에서옵니다. 목적.

희망 이것은이 문제가있는 다른 사람에게 도움이되기를 바랍니다.