У нас есть файловый сервер, на котором мне нужны детали файла для всех 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