2015-01-09 51 views
0

我正在运行SSRS报告,而我的数据源是FetchXML。从表中选择时是否有可能返回标量值?

不幸的是,使用FetchXML,您无法运行存储过程或函数。

这个问题可以问了几个不同的方式:

  1. 我如何传递一个函数到FetchXML的价值?
  2. 而不是做好上面的,是有可能只需要创建一个表或视图tbl_finduserGUID将返回功能dbo.fn_finduserguid()的价值?
  3. 或者有更好的方式通过SSRS/FetchXML获取当前用户的数据库角色?

这里是我的查询将被转换为fetchxml:

SELECT systemuser.fullname AS 'fullname', 
     usersettings.calendartype AS 'calendartype', 
     usersettings.uilanguageid AS 'uilanguageid' 
FROM filteredsystemuser AS systemuser 
     INNER JOIN filteredusersettings AS usersettings 
       ON systemuser.systemuserid = usersettings.systemuserid 
WHERE systemuser.systemuserid = dbo.Fn_finduserguid() 

这里的dbo.fn_finduserguid()的源

SET ansi_nulls ON 

go 

SET quoted_identifier ON 

go 

ALTER FUNCTION [dbo].[Fn_finduserguid]() 
returns UNIQUEIDENTIFIER 
AS 
    BEGIN 
     DECLARE @userGuid UNIQUEIDENTIFIER 

     --- test whether the query is runing by priviledged user with user role of CRMReaderRole 
     --- if it is dbo, we trust it as well. 
     --- There is an issue in SQL. If the user is a dbo, if it not member of any role 
     IF (Is_member('CRMReaderRole') | Is_member('db_owner')) = 1 
     BEGIN 
      SELECT @userGuid = Cast(Context_info() AS UNIQUEIDENTIFIER) 
     END 

     IF @userGuid IS NULL 
     BEGIN 
      SELECT @userGuid = s.systemuserid 
      FROM systemuserbase s 
      WHERE s.domainname = Suser_sname() 
     END 

     RETURN @userGuid 
    END 

回答

1

你应该没有问题,创造一种观点认为,选择函数作为列。

Create view vFindUserGuid 
As 
    Select dbo.Fn_finduserguid() as userguid 

你的查询,则可以使用视图像一个正常的表

SELECT systemuser.fullname AS 'fullname', 
    usersettings.calendartype AS 'calendartype', 
    usersettings.uilanguageid AS 'uilanguageid' 
FROM filteredsystemuser AS systemuser 
    INNER JOIN filteredusersettings AS usersettings 
      ON systemuser.systemuserid = usersettings.systemuserid 
WHERE systemuser.systemuserid = (select userguid from vfinduserguid) 
+0

感谢这么多,这里是我的尝试:http://screencast.com/t/hbWvfmYmT和http://截屏.com/t/8UByawO31 –

+0

我已更新我的回答 – Spock

+0

谢谢!!!!!! –

相关问题