Array
(
)

Recuperar/armazenar Imagens no SQL

Leoseger
   - 26 jul 2004

Senhores,

gostaria de informações de como faço para armazenar e recuperar imagens no SQL Server? Estou usando o image data type no na minha tabela e uso o path do arquivo para inserí-lo (está correto?) mas não sei como recuperá-lo depois uma vez que ao dar select no campo aparece um código binário.

Grato

Marcus.magalhaes
   - 27 jul 2004

Leo, bom dia.

é preferivel que vc trabalhe com imagens fora do banco e armazene somente o caminho da imagem em disco, mas se vc quer armazenar/recuperar no banco, tem um programinha no SQL q faz isso mto bem, que é o TEXTCOPY.EXE e vc pode usa-lo assim :

Usei a proc para ficar mais facil para visualizar seu uso.

CREATE PROCEDURE sp_image (
@var_srvname varchar (30),
@var_login varchar (30),
@var_pwd varchar (30),
@var_dbname varchar (30),
@var_tbname varchar (30),
@var_colname varchar (30),
@var_filename varchar (30),
@var_whereclause varchar (40),
@var_direction char(1))
AS
DECLARE @exec_str varchar (255)
SELECT @exec_str =
´textcopy /S ´ + @var_srvname +
´ /U ´ + @var_login +
´ /P ´ + @var_pwd +
´ /D ´ + @var_dbname +
´ /T ´ + @var_tbname +
´ /C ´ + @var_colname +
´ /W ´´ + @var_whereclause +
´´ /F ´ + @var_filename +
´ /´ + @var_direction
EXEC master..xp_cmdshell @exec_str
-- Execution

sp_image @var_srvname = ´ServerName´,
@var_login = ´user´,
@var_pwd = ´password´,
@var_dbname = ´teste´,
@var_tbname = ´imagens´,
@var_colname = ´img_logo´,
@var_filename = ´c:\picture.bmp´,
@var_whereclause = ´ WHERE img_id=100´,
@var_direction = ´I´ --In

sp_image @var_srvname = ´ServerName´,
@var_login = ´user´,
@var_pwd = ´password´,
@var_dbname = ´teste´,
@var_tbname = ´imagens´,
@var_colname = ´img_logo´,
@var_filename = ´c:\picture.bmp´,
@var_whereclause = ´ WHERE img_id=100´,
@var_direction = ´O´ --Out

Obs.: O usuário que irá executar está proc tem que ter acesso à xp_cmdshell.

Att,

Aroldo Zanela
   - 28 jul 2004

Colega,

Você pode armazenar qualquer tipo de dados no SQL Server, desde imagens, pdfs, executáveis, etc. Qual é o mecanismo de acesso aos dados que você está utilizando?