使用sp_OACreate跟踪文件是否可以使用

时间:2017-11-28 11:04:19

标签: sql sql-server

FTP服务器中有一个用于数据上传的文件。该文件每天从外部发送(通过FTP) 我已安排以下存储过程来监视文件的上次修改日期。如何修改它以确保文件可以使用?例如,文件大小非常大(2gb),程序可能在传输期间运行并返回错误结果。感谢

CREATE FUNCTION [dbo].[fn_GetFileDateLastModified] (@fullFileName NVARCHAR(4000))
RETURNS DATETIME
AS
  BEGIN
  DECLARE @FS               INT,
          @OLEResult        INT,
          @file_exists      INT,
          @DateLastModified DATETIME

  EXEC master.dbo.xp_fileexist
    @fullFileName,
    @file_exists OUTPUT

  IF @file_exists = 1
    BEGIN
        EXECUTE @OLEResult = sp_OACreate
          'Scripting.FileSystemObject',
          @FS OUT

        IF @OLEResult <> 0
          RETURN NULL

        EXEC @OLEResult = sp_OAMethod
          @FS,
          'GetFile',
          @FS out,
          @fullFileName

        IF @OLEResult <> 0
          RETURN NULL

        EXEC @OLEResult = sp_OAGetProperty
          @FS,
          'DateLastModified',
          @DateLastModified OUT

        IF @OLEResult <> 0
          RETURN NULL
    END
  ELSE
    RETURN NULL

  RETURN @DateLastModified
  END  
GO

0 个答案:

没有答案