miércoles, 25 de julio de 2012

Importar, Exportar Imagenes en SQL server con textcopy


Este post viene dado por la pregunta de un estudiante con la necesidad de insertar un archivo tipo .jpg .bmp  etc  en un campo tipo imagen con transact SQL.

 Se realizó en el S.O Windows y SQLserver 2000, después de googlear un rato y realizar algunas  pruebas  encontramos lo siguiente:

1.-BASE DE DATOS: Northwind

2.-CREA TABLA: create table tablaimagen (id int, iFoto image)

3.-CONSULTA TABLA: select * from tablaimagen

4.-INSERTAR REGISTRO: insert into tablaimagen values (1, null)

Nota: importante actualizar registro en la tabla el campo ifoto

5.- ACTUALIZAR REGISTRO: update tablaimagen set iFoto = 'xx'

6.-CONSULTA TABLA: SELECT * FROM tablaimagen


Recuerda de colocar el utilitario textcopy en  raíz de c:\, Ubícalo en c:\Program Files\Microsoft SQL Server\MSSQL\Binn\

7.-Genera Procedimiento en el Analizador de Consulta (Query Analyzer)

CREATE PROCEDURE sp_textcopy (
  @srvname     varchar (30),
  @login       varchar (30),
  @password    varchar (30),
  @dbname      varchar (30),
  @tbname      varchar (30),
  @colname     varchar (30),
  @filename    varchar (30),
  @whereclause varchar (40),
  @direction   char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
         'c:\textcopy /S ' + @srvname +
         ' /U ' + @login +
         ' /P ' + @password +
         ' /D ' + @dbname +
         ' /T ' + @tbname +
         ' /C ' + @colname +
         ' /W "' + @whereclause +
         '" /F ' + @filename +
         ' /' + @direction
EXEC master..xp_cmdshell @exec_str

Ejecuta procedimiento sustituyendo las variables  en srvname, login, password y filename

8. -       sp_textcopy @srvname = 'TUserver',
            @login = 'sa',
            @password = 'clave',
            @dbname = 'Northwind',
            @tbname = ' tablaimagen',
            @colname = 'iFoto',
            @filename = 'c:\Foto.jpg',
            @whereclause = 'where id= 1',
            @direction = 'I'

Recuerda colocar la foto en la raíz en este caso c:\, ejemplo c:\foto.jpg

CONSULTA LA TABLA

select * from  tablaimagen

Certifica si actualizo la foto ósea si cambio el binario en el campo

NOTA: no se puede mostrar la foto por t-sql, tiene que apoyarte con herramientas de desarrolló cualquiera de ellas foxpro, delphi, c++ , php etc., en la red hay bastante código que puedes utilizar. Los parámetros del textcopy con textcopy /?

No hay comentarios:

Publicar un comentario