DataBase/TIP 2008. 1. 9. 13:41
반응형
1.사용법

--Usage:
select dbo.udf_CheckFileSize (''c:\choiwonwoo.txt'')
select dbo.udf_CheckFileSize (''d:\sqldumps\msdbx.bak'')
select dbo.udf_CheckFileSize (''x:\sqldumpsmsd.bak'')

--Results
145920 bytes
23092736 bytes
-1 means File not found or path not found
-2 error during FSO process


2. script
Create function udf_CheckFileSize (@filename varchar(1000))
returns bigint
as
--Created by : MAK
--Date: Dec 5, 2004
--Objective: To display the size of the given file
BEGIN
DECLARE @FS int
DECLARE  @OLEResult int
DECLARE  @FileID int
DECLARE @Size bigint
DECLARE @Flag bigint
set @size =0
set @Flag =0
EXECUTE @OLEResult = sp_OACreate 'Scripting.FileSystemObject', @FS OUT
EXECUTE @OLEResult = sp_OAMethod @FS, 'GetFile', @FileID OUT,@filename
IF @OLEResult <> 0  
begin
set @Flag =-1
end
else
begin
EXECUTE @OLEResult = sp_OAGetProperty @FileId,'Size', @Size OUT
IF @OLEResult <> 0  
begin
set @Flag =-2
end
end

EXECUTE @OLEResult = sp_OADestroy @FileID
EXECUTE @OLEResult = sp_OADestroy @FS
if @flag <> -1 and @flag <> -2 
begin 
set @flag = @size
end
return @flag
END

반응형
posted by choiwonwoo
: