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 /?