3

我在 SSRS 中收到以下错误:

An error occurred during local report processing.
An error has occurred during report processing.
Query execution failed for dataset 'Dataset1'.
incorrect syntax near '=' 

在此错误之前,我收到一个抱怨参数顺序的错误(“必须将参数号 3 和后续参数传递为 '@name = value',在使用了 '@name = value' 形式之后,所有后续参数必须是以'@name = value'的形式传递。)..我通过改变参数的顺序来解决这个问题(基本上我把开始/结束日期放在其他参数之后)。

exec [dbo].[prc_RPT_Select_BI_Completes_Data_View_tst]

@AccountIDs  = NULL,
@ClientIDs  = NULL,
@SupplierIDs  = NULL,
@FromDate = '19001010',      
@ToDate = '19001110',
@CompleteType = NULL,
@SourceType = NULL,
@SurveyStatus = NULL,
@IsSupplierUser = NULL

在此处输入图像描述

我该如何解决这个问题?将存储过程的事实。整个过程中的动态sql都会影响这个吗?

另外,当我在 SSMS 中手动运行它时:

exec [dbo].[prc_RPT_Select_BI_Completes_Data_View_tst] '20121010', '20121011', null,null,null,null,null,null 

然后它工作正常。所以它可能与SSRS有关?

4

1 回答 1

1

原来的错误并没有抱怨参数的顺序。相反,它声明(有点神秘)在调用过程时不应该混合位置参数和命名参数。

现在有两个可能导致新错误的原因:

  1. 您在调用语句中有错字。
  2. 您在程序本身中有错字。

尝试获取发送到数据库的确切语句并在 SSMS 中手动运行它。那应该告诉你更多。我确实注意到您在两个示例中使用了不同的参数值。

如果您无法解决此问题,请运行 SQL Server Profiler 跟踪,捕获已启动的存储过程语句和已完成的存储过程语句以及运行报告时的用户错误。在那里,您应该能够看到导致错误的确切语句。

于 2013-02-12T02:07:47.993 回答