Redirect

This Page

has moved to a new address:

http://www.tuliorosa.com.br

Sorry for the inconvenience…

Redirection provided by Blogger to WordPress Migration Service

quarta-feira, setembro 22, 2010

Inserindo imagens no MS SQL Server

image

A partir do MS SQL Server 2005, passamos a contar com o recurso FILESTREAM para armazenar dados não estruturado. O FILESTREAM é uma ótima opção para armazenamento de imagens, porem existe uma questão relacionada ao tamanho das imagens, se for armazenar imagens grandes e muitas imagens, o FILESTREAM é a melhor opção. Se for armazenar imagens pequenas, habilitar esse recurso pode ser exagerado.

Para armazenamento de imagens pequenas, existe uma forma mais simples, que será demonstrada nesse post. Antes que alguém pergunte qual o tamanho de uma imagem pequena, existe muita discussão sobre isso, eu considero imagens de até 1 MB, ideal para a solução abaixo:

 

CREATE TABLE [dbo].[tulio](
    [ID] [int] NOT NULL,
    [imagem] [varbinary](max) NOT NULL
) ON [PRIMARY];

DECLARE @img AS VARBINARY(MAX)
SELECT @img = CAST(bulkcolumn AS VARBINARY(MAX)) FROM OPENROWSET(BULK '\\SERVIDOR\PASTA\teste.jpg', SINGLE_BLOB) AS x;

INSERT tulio (ID, imagem)
SELECT 1,@img;

2 comentários:

  1. Obrigado Tulio, exportei essa minha nova tabela do sql com a imagem para o excel mas o mesmo me traz apenas o valor "1" e nada da foto, teria como estar trazendo a foto ao excel?

    ResponderExcluir
  2. Eu não sei se o Excel tem algum objeto para mostrar imagens... mas deve ter.
    Se esta mostrando o "1" é porque esta pegando o campo errado, selecione somente o campo imagem (select imagem from tulio).

    ResponderExcluir