ssrs master.dbo.xp_fileexist根据用户帐户获取不同的结果

时间:2016-07-20 17:44:16

标签: sql-server reporting-services

SSRS数据集使用带有udf“fc_FileExists”的查询来检查用户的照片是否存在。如果照片不存在,将使用匿名照片。 (匿名照片与其他照片位于同一文件夹中)。此ssrs报告在Intranet域环境中运行。当我运行此报告时,我可以看到照片。但其他一些用户却做不到。他们只看到匿名照片。代码如下所示。

CASE WHEN dbo.fc_FileExists('\\domain\folder\'+ID+'.jpg') = 1 
    THEN 'file:\\domain\folder\'+ID+'.jpg'
     WHEN dbo.fc_FileExists('\\domain\folder\'+ID+'.jpg') = 0 
    THEN 'file:\\domain\folder\anonymous .jpg'

问题出在某些用户身上,他们总是会收到匿名照片。这意味着照片可能存在,但dbo.fc_FileExists总是返回0.但为什么我可以看到照片。

请帮助

AND fc_FileExists的源代码如下:

CREATE FUNCTION [dbo].[fc_FileExists](@path varchar(8000)) 
RETURNS BIT
AS
BEGIN
     DECLARE @result INT
     EXEC master.dbo.xp_fileexist @path, @result OUTPUT
     RETURN cast(@result as bit)
END;

2 个答案:

答案 0 :(得分:0)

这是两件事之一:

  1. 权限:某些用户无权查看该文件夹。
  2. 表格中不存在该ID。
  3. 如果可能的话,以显示匿名照片的用户身份连接到SQL查询分析器,然后运行该功能 - 任何错误?如果没有,作为同一个用户尝试使用Windows资源管理器查找用户图片。

答案 1 :(得分:0)

我认为这不是好方法。实际上ssrs可以直接使用System.IO.File.Exists。所以我们不必在sql server端做这个工作。我认为表现应该更好。