Sql server Microsoft SQL Server和varbinary数据类型转换

Sql server Microsoft SQL Server和varbinary数据类型转换,sql-server,image,tsql,varbinary,varbinarymax,Sql Server,Image,Tsql,Varbinary,Varbinarymax,我不熟悉Microsoft SQL Server和varbinary(max)数据类型,但我需要使用的数据库存储图像 我的问题是,我需要做什么才能读回数据并将其转换回可读的图像类型 到目前为止,我所做的是 SELECT CONVERT(VARCHAR(max), [IMAGE], 2) FROM [demo].[dbo].[DOCIMAGES] WHERE [TITLE] = 'test.jpg' 但我得到的几乎是相同的,只是从数据的开头删除了0x,当 SELECT CONVERT(V

我不熟悉Microsoft SQL Server和
varbinary(max)
数据类型,但我需要使用的数据库存储图像

我的问题是,我需要做什么才能读回数据并将其转换回可读的图像类型

到目前为止,我所做的是

SELECT CONVERT(VARCHAR(max), [IMAGE], 2)
  FROM [demo].[dbo].[DOCIMAGES]
  WHERE [TITLE] = 'test.jpg'
但我得到的几乎是相同的,只是从数据的开头删除了
0x
,当

SELECT CONVERT(VARCHAR(max), [IMAGE], 0)
  FROM [demo].[dbo].[DOCIMAGES]
  WHERE [TITLE] = 'test.jpg'
返回值为
Lead

然后我尝试执行存储过程,将其保存到如下文件:

DECLARE @ImageData VARBINARY (max);
DECLARE @Path2OutFile NVARCHAR (2000);
DECLARE @Obj INT

SET NOCOUNT ON

SELECT @ImageData = ( 
  SELECT CONVERT(VARBINARY(max), [IMAGE], 1)
  FROM [demo].[dbo].[DOCIMAGES]
  WHERE [TITLE] = 'test.jpg'
);

SET @Path2OutFile = CONCAT (
         'C:\Users\MyPC\Downloads'
         ,'\'
         ,'test.jpg'
       );
    BEGIN TRY
     EXEC sp_OACreate 'ADODB.Stream' ,@Obj OUTPUT;
     EXEC sp_OASetProperty @Obj ,'Type',1;
     EXEC sp_OAMethod @Obj,'Open';
     EXEC sp_OAMethod @Obj,'Write', NULL, @ImageData;
     EXEC sp_OAMethod @Obj,'SaveToFile', NULL, @Path2OutFile, 2;
     EXEC sp_OAMethod @Obj,'Close';
     EXEC sp_OADestroy @Obj;
    END TRY

 BEGIN CATCH
  EXEC sp_OADestroy @Obj;
 END CATCH

   SET NOCOUNT OFF
但这失败了,出现了一个错误:

SQL Server阻止访问组件的过程“sys.sp\u OADestroy” “Ole自动化过程”,因为此组件已作为 此服务器的安全配置的一部分。制度 管理员可以通过以下方式启用“Ole自动化过程”的使用: 使用sp_配置

问题是我不是那个服务器的管理员


在这种情况下,我可以将[图像]的内容转储到一个文件中,然后使用Java或PHP流式传输该内容并将其保存为图像文件吗?

您将在哪里显示图像/使用图像数据?它们会显示在网页或客户端UI或类似的东西中吗?如果是这样的话,您应该能够从数据库中以位的形式读取数据,并将其用于客户端所需的任何对象。如果您有一个web api方法或类似的方法来返回JPG结果,您应该能够返回MIME类型为image/JPG的原始数据,这很好。@squillman它将被web api使用,我的想法是将其输出为JSON对象,该对象将包含MIME类型以及该
image
列的二进制部分,但当我尝试将其与适当的标题一起使用,以显示图像/jpg未按预期工作。您可能会更好,然后发布您拥有的api代码,因为这才是真正的问题所在。你能更新一下吗?@squillman我正在尝试使用PHP
hex2bin($data)
其中
$data
是我问题中第一个提到的查询的结果。