【发布时间】:2014-06-17 06:09:41
【问题描述】:
我已经实现了一个 SSRS 2008 报告,它有一个参数 embed_id,它应该是数字。我还添加了一个验证码来检查输入的embed_id 是否有效(数字)。
存储过程用于获取报告数据。当我在embed_id 文本框中输入诸如abc 之类的字母时,验证代码正确返回false,但仍会执行SP,在UI 上出现以下错误-
数据集“嵌入”的查询执行失败。列名“abc”无效。
我添加了一条红色消息,显示自定义文本,例如“嵌入 ID 无效”,但在这种情况下未显示。
有没有办法在验证错误时取消 SP 执行?还是我应该在 SP 本身内处理它,以便 SP 在接收到此类无效输入时返回零行?
【问题讨论】:
-
参数数据类型设置为什么?大概是文字?为什么不将其设置为数字并让报告服务进行验证?
-
@MartinSmith - 谢谢!它被设置为文本。我尝试了您的建议并将其设置为整数。但是当我输入字母时,顶部的参数消失了,我在页面上得到的只是这条消息-“为报告参数'embed_id'提供的值对其类型无效。(rsReportParameterTypeMismatch)”-不是真的很漂亮。它也接受负值。所以这对我不起作用。还有另一个有点复杂的验证,它涉及我需要实现的两个日期。考虑到如果有办法停止 SP 的执行,那真的很有帮助。
-
嗯,AFAIK 没有办法在报告服务本身中连接并进行自定义参数验证,因此您需要在存储过程本身中进行。
-
虽然在这里可能有用吗? stackoverflow.com/q/606621/73226
标签: sql validation stored-procedures reporting-services ssrs-2008