2016-07-20 82 views
1

SSRS數據集使用帶有udf「fc_FileExists」的查詢來檢查用戶的照片存在。如果照片不存在,將使用匿名照片。 (匿名照片與其他照片位於同一個文件夾中)。此ssrs報告正在Intranet域環境中運行。當我運行這個報告時,我可以看到照片。但一些其他用戶不能。他們只看到匿名照片。代碼如下所示。ssrs master.dbo.xp_fileexist根據用戶帳戶獲得不同的結果

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.但爲什麼我可以看到照片。

任何幫助,請

和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; 

回答

0

這是兩件事情之一:

  1. 權限:有的用戶沒有權限查看文件夾。
  2. 表中不存在該ID。

如果可能,請以顯示匿名照片的用戶身份連接到SQL查詢分析器,然後運行該函數 - 任何錯誤?如果沒有,作爲同一用戶嘗試使用Windows資源管理器來查找用戶圖片。

+0

謝謝BIDeveloper。我做了測試,用戶可以訪問該文件夾,並在該文件夾中存在ID和文件。但我在他的機器上運行fc_FileExists('\\ domain \ folder \'+ ID +'。jpg')總是得到0,無論如何。但在我的機器上,我可以得到正確的結果。我檢查Current_User,我是dbo,他是'域\用戶',有什麼建議嗎? –

+0

我會躺下這是一個Windows權限問題。你可以發佈fc_FileExists源代碼嗎? – BIDeveloper

+1

我只是發佈了fc_FileExists源代碼。 –

0

我覺得這不是好的方法。實際上ssrs可以直接使用System.IO.File.Exists。所以我們不必在sql server端做這個工作。我認爲表現應該更好。