Published on

February 26, 2018

Almacenamiento y recuperación de imágenes en SQL Server

Introducción

Cuando se trabaja con bases de datos, puede haber casos en los que necesite almacenar imágenes, como fotos de productos o fotos de miembros del equipo. En este artículo, exploraremos cómo almacenar y recuperar imágenes en SQL Server utilizando diversas técnicas.

Requisitos

  • SQL Server 2016 o posterior con SSMS instalado
  • SSDT 2015 instalado (o versiones anteriores)
  • SSRS instalado

Inserción de una sola imagen

Para insertar una sola imagen en SQL Server, primero debemos crear una tabla con una columna de tipo varbinary(max) para almacenar los datos de la imagen. Aquí tienes un ejemplo:

CREATE TABLE myimages (
  id int,
  img varbinary(max)
)

Una vez creada la tabla, podemos utilizar la instrucción INSERT INTO para insertar la imagen en la tabla. Por ejemplo:

INSERT INTO myimages
VALUES (1, (SELECT * FROM OPENROWSET(BULK N'C:\img\1.png', SINGLE_BLOB) as T1))

Esta instrucción inserta una imagen llamada 1.png desde la carpeta C:\img en la tabla myimages.

Almacenamiento de múltiples imágenes

Si tienes varias imágenes que deseas almacenar en SQL Server, puedes utilizar PowerShell para simplificar la tarea. Primero, trunca la tabla myimages para eliminar cualquier dato existente:

TRUNCATE TABLE myimages

A continuación, utiliza PowerShell para recorrer las imágenes de una carpeta e insertarlas en la tabla. Aquí tienes un ejemplo:

$files = Get-ChildItem -Path C:\img

$counter = 1

foreach ($file in $files) {
  Invoke-Sqlcmd -Query "INSERT INTO myimages VALUES ($counter, (SELECT * FROM OPENROWSET(BULK N'C:\img\$file', SINGLE_BLOB) as T1))"
  $counter++
}

Este script recupera todos los archivos de la carpeta C:\img, asigna un ID único a cada imagen y las inserta en la tabla myimages.

Recuperación de imágenes

Para verificar que las imágenes se hayan insertado correctamente, podemos utilizar SQL Server Reporting Services (SSRS). Abre SSDT y crea un nuevo proyecto. Utiliza el Asistente para proyectos de servidor de informes para crear un informe que muestre las imágenes de la tabla myimages.

Una vez creado el informe, puedes agregar un control de imagen y configurarlo para mostrar las imágenes de la base de datos. Así es cómo:

  1. Agrega la tabla myimages al informe
  2. Selecciona las columnas id e img
  3. Elige el tipo de informe tabular
  4. Diseña el diseño de la tabla
  5. Configura el control de imagen para utilizar la columna img como origen de la imagen
  6. Selecciona el tipo MIME adecuado para las imágenes (por ejemplo, image/png)
  7. Especifica el tamaño de la imagen

Una vez que se ejecute el informe, deberías ver las imágenes recuperadas de la tabla myimages.

Conclusión

SQL Server proporciona diversos métodos para almacenar y recuperar imágenes. En este artículo, aprendimos cómo insertar una sola imagen y varias imágenes en una tabla de SQL Server utilizando T-SQL y PowerShell. También exploramos cómo ver las imágenes insertadas utilizando SQL Server Reporting Services. ¡Si tienes alguna pregunta, no dudes en dejar un comentario!

Click to rate this post!
[Total: 0 Average: 0]

Let's work together

Send us a message or book free introductory meeting with us using button below.