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与转换数据的图像。