在Report中传递参数时出错

时间:2013-04-19 00:24:39

标签: sql reporting-services

我正在尝试使用SSDT来部署一个报告,该报告将允许输入2个参数,我可以将其用于日志文件的开头和结尾。我的参数在Report Data下的Parameters下拉列表中声明为DateTime。数据集的参数也包含在其属性中。这是我的SQL语句和错误。

[Declare] @StartTime DateTime 
[Declare] @EndTime Datetime 
SELECT RecordID, AnalysisID, HeatName, NewHeatName, AnalysisTime, SampleType, Grade, NewGrade, ProductID, RecordChangeTime, ChangesMade, LoggedUser
FROM Chemistry_Log
WHERE (RecordChangeTime >= @ StartTime) AND (RecordChangeTime <= @ EndTime)

解析SQL窗格的内容时遇到以下错误:

无法解析查询文本。

我不确定从何处开始,因为这不是错误消息的信息......

2 个答案:

答案 0 :(得分:0)

  

无法解析查询文本

您的查询应该使用提供的信息。唯一缺失的部分是您的variables声明。在这种情况下,我没有看到:

Declare @StartTime DateTime 
Declare @EndTime   Datetime

这将声明变量准备存储DateTime。至于如何将值分配给变量,这取决于您将如何处理查询。

  • Stored Procedure
  • 中使用它
  • 直接在数据库管理系统中调用您的查询
  • 从应用程序中调用它并将其作为Sql Parameters
  • 传递

您没有提供足够的信息以便我了解更多详情。

答案 1 :(得分:0)

您的查询看起来是正确的。我不认为问题存在。报告中是否定义了参数?也就是说,它们是否出现在报告项的参数部分?它们是否也在数据集的属性中定义?通常这些应该自动获取任何未声明的参数,但我已经看到自动创建不起作用的时间。

我在报告定义中看到参数,确保将它们设置为DateTime参数。此外,运行示例查询时不要将它们留空:提供有效的日期值。即使单击“确定”,也会出现询问参数值的提示。只需填写任何有效日期:SSRS有时需要此操作一次运行查询并确定查询将返回的列。