Sql server 将数字图像从SQL Server 2012转换为物理图像

Sql server 将数字图像从SQL Server 2012转换为物理图像,sql-server,Sql Server,我有一个图像表,在SQL Server 2012数据库中包含大约50000个图像。现在,我需要将所有图像从数据库迁移到指定文件夹中的物理图像 我使用了下面显示的代码来迁移图像,但是只有12000张图像被转换成清晰的格式,其他的都是扭曲模糊或不清晰的。问题是当我们从我们使用的软件中看到这个图像时,它是非常清晰和完美的。所以,请任何人帮助我如何迁移二进制图像到物理图像,因为它从使用的软件看到 请查看我使用的SQL代码: DECLARE @FileContent VARBINARY(MAX)

我有一个
图像
表,在SQL Server 2012数据库中包含大约50000个图像。现在,我需要将所有图像从数据库迁移到指定文件夹中的物理图像

我使用了下面显示的代码来迁移图像,但是只有12000张图像被转换成清晰的格式,其他的都是扭曲模糊或不清晰的。问题是当我们从我们使用的软件中看到这个图像时,它是非常清晰和完美的。所以,请任何人帮助我如何迁移二进制图像到物理图像,因为它从使用的软件看到

请查看我使用的SQL代码:

DECLARE 
    @FileContent VARBINARY(MAX),
    @FileName VARCHAR(MAX),
    @ObjectToken INT,
    @FileID VARCHAR(MAX),
    @IsApproved VARCHAR(2),
    @PicT VARCHAR(1)

DECLARE cFiles CURSOR FAST_FORWARD FOR
    SELECT I.Code, I.Name, Image, IsApproved, PicType 
    FROM ImageTable I

OPEN cFiles

FETCH NEXT FROM cFiles 
      INTO @FileID, @FileName, @FileContent,@IsApproved, @PicT

WHILE @@FETCH_STATUS = 0 
BEGIN
    -- CHOOSE 1 of these SET statements:

    -- if FileName is unique, then just remove special characters
    SET @FileName = REPLACE(REPLACE(@FileName, '\', ' '), ':', ' ')

    -- if FileName without path information is unique
    SET @FileName = SUBSTRING(@FileName,
        len(@FileName)+2-CHARINDEX('\',REVERSE(@FileName)),len(@FileName))

    -- if you just take ID + extensions
    SET @FileName = CASE WHEN @PicT ='J' THEN 'D:\IMAGE\' + CAST(@FileID AS varchar) + '.jpg'
                   WHEN @PicT='B' THEN 'D:\IMAGE\' + CAST(@FileID AS varchar) + '.bmp'
                    END

    EXEC sp_OACreate 'ADODB.Stream', @ObjectToken OUTPUT
    EXEC sp_OASetProperty @ObjectToken, 'Type', 1
    EXEC sp_OAMethod @ObjectToken, 'Open'
    EXEC sp_OAMethod @ObjectToken, 'Write', NULL, @FileContent
    EXEC sp_OAMethod @ObjectToken, 'SaveToFile', NULL, @FileName, 2
    EXEC sp_OAMethod @ObjectToken, 'Close'
    EXEC sp_OADestroy @ObjectToken

    FETCH NEXT FROM cFiles 
          INTO @FileID, @FileName, @FileContent, @IsApproved, @PicT
END

CLOSE cFiles
DEALLOCATE cFiles

问题:1我没有看到您检查调用
sp\u方法
过程返回的
HRESULT
。是否有任何
HRESULT
值与0不同(即
S_OK
)?2在您的软件产品中显示结果的确切方法是什么(最小、完整)?我还没有进行上述检查。我无法访问软件代码,但它在弹出窗口中以windows窗体显示图像。你必须调查二进制数据,看看原因是什么。按您的方式导出文件不会修改或转换任何数据。您提到的软件显然正在进行转换或使用非传统格式。因此,请您指导我进一步的过程。我应该把重点放在哪个站点上,以逐点解决问题。这将是伟大的,请您指导导出MSSQL与转换数据的图像。