SSRS 2005 - 捕获RAISERROR消息

时间:2009-07-21 16:20:10

标签: sql-server sql-server-2005 reporting-services error-handling

我正在检查用户是否有权通过数据集存储过程查看报告,如果用户没有,则调用raiserror。

当存储过程(填充报表数据集)引发错误(通过RAISERROR)而不是返回数据时,有没有办法在SQL Server Reports 2005中显示不同的消息?

这是数据集存储过程的框架代码

create procedure ReportSprocName
    @ClientID   int,
    @Login      sysname
as
begin
    --; check user's permission through @Login
    --; * Pseudo code *
    if @Login does not have permission begin
        raiserror(@Login does not have permission, 127, 1)
        return
    end

    select  id, name, etc...
    from    someTable   
end
GO

我对两种可能的解决方案感兴趣

  1. 在RAISERROR
  2. 中显示错误消息
  3. 在SSRS报告中显示硬编码的自定义消息
  4. 目前,这是SSRS报告显示的默认消息 alt text

1 个答案:

答案 0 :(得分:2)

如果用户无权查看报告,您为什么要允许用户触发报告?

要在SSRS报告中显示自定义消息:

  1. 添加文字字段
  2. 自定义显示在其上的文字
  3. 提供可见性的表达式>隐藏值(属性窗口)。 IE:

    = iif(count(Fields!Application_Number.Value,“YOUR-DATASOURCE-NAME”)> 0,true,false)