SSRS 2005 도움말 - TSQL 내에서 파일 크기를 가져와야합니다 (열에 지정된 경로). 누구나?

StackOverflow https://stackoverflow.com/questions/164324

문제

폴더 크기를 가져 와서 보고서 (SSRS)에 정보를 표시해야합니다. 여러 데이터베이스 (LOOP!)를 위해이 작업을 수행해야합니다. 이 DB는 웹 사이트의 백엔드입니다. 전에 이것을 한 사람이 있습니까? 샘플이나 올바른 방향을 알려 주시겠습니까? XP_FileSize 및 Like 올바른 솔루션입니까? 돕다!

도움이 되었습니까?

해결책

질문과 Tomalak의 응답을 살펴보면보고 서버가 DB에서 보유 된 폴더에 도달 할 수 있다고 가정합니다.

먼저 쿼리를 설정하여 경로의 결과 세트를 되 찾을 수 있습니다.이 부분에 아무런 문제가 없다고 생각합니다. 다음으로 보고서에 사용자 정의 코드 기능을 추가해야합니다. http://msdn.microsoft.com/en-us/library/ms155798.aspx -이 함수는 폴더 경로를 매개 변수로 사용하고 폴더의 크기를 전달합니다. 보고서에 코드를 포함 시키려면 vb.net에 작성하거나 DLL을 코딩하여 가져올 수 있습니다.

예제 vb.net 코드 블록 (System.io를 사용하여 개체를 접두사해야 할 수도 있습니다.) http://www.freevbcode.com/showcode.asp?id=4287

Public Shared Function GetFolderSize(ByVal DirPath As String, _
   Optional IncludeSubFolders as Boolean = True) As Long

  Dim lngDirSize As Long
  Dim objFileInfo As FileInfo
  Dim objDir As DirectoryInfo = New DirectoryInfo(DirPath)
  Dim objSubFolder As DirectoryInfo

Try

'add length of each file
  For Each objFileInfo In objDir.GetFiles()
    lngDirSize += objFileInfo.Length
  Next

  'call recursively to get sub folders
  'if you don't want this set optional
  'parameter to false 
If IncludeSubFolders then
  For Each objSubFolder In objDir.GetDirectories()
    lngDirSize += GetFolderSize(objSubFolder.FullName)
  Next
End if

Catch Ex As Exception


End Try

   Return lngDirSize
End Function

이제 보고서에서 테이블에서 폴더 크기에 다음과 같은 표현식을 표시하는 셀에 대해 다음과 같습니다.

=Code.GetFolderSize(Fields!FolderPath.Value)

이 접근법이 수동으로보고 된 보고서에 대해 수행 될 것이라고 의심 스럽지만 소규모 결과 세트 또는 이메일로 전달 된 예정된 보고서에 대해서는이 문제를 해결할 수 있습니까?

아, 그리고이 작품은 Rs 내에서 System.io를 사용하여 '권한 문제가 발생할 수 있다고 제안합니다. http://blogs.sqlxml.org/bryantlikes/pages/824.aspx

다른 팁

누가 당신의 시나리오에서 무엇을 해야하는지 명확히 할 수 있습니까? SQL Server가 정보를 얻거나보고 서버를 원하십니까?

"폴더 크기"가 정확히 무엇을 의미합니까? "하나의 폴더, 각 파일을 요약"충분합니까? 또는 재귀가 필요합니까? 어느 쪽이든, 나는 사용하는 약간의 Custom .NET 함수를 사용합니다. System.IO.Directory 그리고 그것은 친척입니다.

디렉토리를 스캔하고 데이터를 데이터베이스로 집계 한 다음 SSRS를 사용하여 평소와 같이 데이터베이스를보고하는 Windows 서비스 인 두 조각으로 나누는 것을 고려합니다.

내가 제안하는 이유는 Mas 이것이 다른 기계의 경로에 액세스하는 것으로 바뀌면, 나는 그것의 보안 영향에 덜 편안합니다.

도움이 되었기를 바랍니다

SSRS에서는 사용자 정의 데이터 확장의 도움으로이를 수행 할 수 있습니다. 폴더 이름으로 데이터 소스의 경로를 제공하면 파일과 관련 정보를 검색하고 표시합니다.

추가 참조 및 사용자 정의 DLL을 위해서는 이것을 사용하십시오http://www.devx.com/dbzone/article/31336/0/page/4

나는 이것을 더 일찍했다.

참고 : 보고서 디자이너 및 보고서 관리자 구성 파일을 관련 변경해야합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top