Как найти высоту и ширину изображения на файловом сервере, используя sql - PullRequest
0 голосов
/ 06 сентября 2018

У нас есть файловый сервер, на котором мне нужны детали файла для всех jpg. Я использую приведенный ниже код, чтобы получить свойства файлов. Я могу получить путь, тип, дату создания и размер. Мне также нужно получить высоту и ширину изображения.

Добавление этого не работает:

EXEC sp_OAGetProperty @fileobj, 'Width', @Width OUT

Есть предложения?

ALTER PROCEDURE xp_getfiledetails 
    @filename NVARCHAR(255), 
    @Path NVARCHAR(255) OUTPUT,
    @Type NVARCHAR(255) OUTPUT,
    @DateCreated DATETIME OUTPUT,
    @Size INT OUTPUT
AS
BEGIN
    DECLARE @fileobj INT , @fsobj INT
    DECLARE @exists INT, @error INT 
    DECLARE @src VARCHAR(255), @desc VARCHAR(255)

    --create FileSystem Object
    EXEC @error = sp_OACreate 'Scripting.FileSystemObject', @fsobj OUT

    IF @error <> 0
    BEGIN
        EXEC sp_OAGetErrorInfo @fsobj, @src OUT, @desc OUT 

        SELECT 
            error = CONVERT(varbinary(4), @error), Source =@ src, 
            Description = @desc

        RETURN 2
    END

    --Create file object that points to specified file
    EXEC @error = sp_OAMethod @fsobj, 'GetFile' , @fileobj OUTPUT, @filename

    IF @error <> 0
    BEGIN
        EXEC sp_OAGetErrorInfo @fsobj
        RETURN 2
    END

    --Get properties of fileobject
    EXEC sp_OAGetProperty @fileobj, 'DateCreated', @DateCreated OUT
    EXEC sp_OAGetProperty @fileobj, 'Size', @Size OUT
    EXEC sp_OAGetProperty @fileobj, 'Type', @Type OUT
    EXEC sp_OAGetProperty @fileobj, 'Path', @Path OUT

    --destroy File Object
    EXEC @error = sp_OADestroy @fileobj

    IF @error <> 0
    BEGIN
        EXEC sp_OAGetErrorInfo @fileobj
        RETURN
    END

    --destroy FileSystem Object
    EXEC @error = sp_OADestroy @fsobj

    IF @error <> 0
    BEGIN
        EXEC sp_OAGetErrorInfo @fsobj
        RETURN 2
    END
END
...