Também podemos converter um campo imagem para a base64. Nesse caso primeiro é feita a conversão de IMAGE para VARBINARY e de VARBINARY para VARCHAR. Depois utilizando nossa função criada, convertemos para a base64.
SQL para criar a função:
USE [minhaBaseDeDados]
GO
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
CREATE FUNCTION [dbo].[ConverteParaBase64](@texto VARCHAR(MAX))
RETURNS VARCHAR(MAX)
AS
BEGIN
declare @bin varbinary(max), @Base64 varchar(max)
set @bin = convert(varbinary(max), @texto)
set @Base64 = cast('' as xml).value('xs:base64Binary(sql:variable("@bin"))', 'varchar(max)')
RETURN (select @Base64)
END
/*
select dbo.ConverteParaBase64('33110')
*/
Para converter um campo IMAGE, após criar a função, utilizamos ela passando o campo imagem dentro do SELECT: cast(cast( CAMPOIMAGEM as varbinary(max))as varchar(max))
(select dbo.ConverteParaBase64(
(select cast(cast( GIMAGEM.IMAGEM as varbinary(max))as varchar(max)) from GIMAGEM where GIMAGEM.ID = p.IDIMAGEM)
)) as IMAGEM
Até mais.
Nenhum comentário:
Postar um comentário