Sql server 2005 SSRS2005帮助-需要从TSQL中获取文件大小(在列中指定的路径)。任何人

Sql server 2005 SSRS2005帮助-需要从TSQL中获取文件大小(在列中指定的路径)。任何人,sql-server-2005,tsql,reporting-services,filesize,Sql Server 2005,Tsql,Reporting Services,Filesize,我需要获得文件夹大小,并在报告(SSRS)上显示信息。我需要对许多数据库(循环!)执行此操作。这些数据库是网站的后端。以前有人这样做过吗?你能给我指一些样品或正确的方向吗?xp_文件大小之类的解决方案是否正确?救命啊 您能否澄清在您的场景中谁应该做什么?您希望SQL Server获取信息还是希望Reporting Server获取信息 “文件夹大小”到底是什么意思?“一个文件夹,汇总每个文件”是否足够,还是需要递归?无论哪种方式,我都会选择一个使用System.IO.Directory及其相关项

我需要获得文件夹大小,并在报告(SSRS)上显示信息。我需要对许多数据库(循环!)执行此操作。这些数据库是网站的后端。以前有人这样做过吗?你能给我指一些样品或正确的方向吗?xp_文件大小之类的解决方案是否正确?救命啊

您能否澄清在您的场景中谁应该做什么?您希望SQL Server获取信息还是希望Reporting Server获取信息


“文件夹大小”到底是什么意思?“一个文件夹,汇总每个文件”是否足够,还是需要递归?无论哪种方式,我都会选择一个使用
System.IO.Directory
及其相关项的自定义.NET函数。

查看问题和Tomalak的回答,我假设报表服务器将能够访问数据库中的文件夹:

首先设置查询以返回路径的结果集-我想这部分不会有问题。接下来,您需要向报表中添加一个自定义代码函数:-此函数将文件夹路径作为参数,并传回文件夹的大小。如果你想在报告中嵌入代码,你必须在VB.Net中编写,或者你可以编写一个DLL并把它带进来

一个VB.Net代码块示例(请记住,您可能需要使用System.IO作为对象的前缀。)

现在,在您的报告中,在您的表中,对于显示文件夹大小的单元格,有一个表达式,如下所示:

=Code.GetFolderSize(Fields!FolderPath.Value)
我怀疑这种方法是否适用于手动查看的报告,但对于较小的结果集或通过电子邮件发送的计划报告,您可能会侥幸逃脱


哦,这篇文章建议你可以在RS:

< P>中使用Stase.IO访问权限问题。我会考虑把它分成两个部分,一个Windows服务来扫描目录并将数据聚合到一个数据库中,然后使用SSR来像往常一样报告数据库。 我建议这样做的原因是使用master..xp\u文件大小,而SQL Server服务启动的帐户需要访问要扫描的路径。一旦这变成了访问其他机器上的路径,我就不太适应它的安全含义了


希望这有助于

在SSRS中,您可以借助自定义数据扩展来实现这一点。你需要把数据源的路径作为你的文件夹名,它会检索你的文件及其相关信息并显示出来

如需进一步参考和自定义dll,请使用此

我以前做过这件事


注意:您必须对报表设计器和报表管理器配置文件进行相关更改。

Tomalak,我希望能够在SSRS报表中显示文件夹的大小。文件夹的路径存储在SQL Server DB中。如果“System.IO.Directory”是正确的方向,有人能给我举个例子说明如何在SSRS中对其进行编码吗。谢谢
=Code.GetFolderSize(Fields!FolderPath.Value)