GRAVAR, LER, DELETAR IMAGEM DE CAMPOS BLOB E IMAGE

TRTNCG 29/06/2010 16:38:40
#346090
Boa Tarde Pessoal!

é o seguinte estou querendo colocar para salvar a foto em um campo de uma tabela Firebird do tipo BLOB, e de uma tabela do SQL Server 2005 Express do tipo IMAGE. Gostaria de saber como faria para INSERIR, ALTERAR, DELETAR e ler essa imagem desses dois tipos de campos via VB6.

Grato pela atenção
MSMJUDAS 29/06/2010 18:05:48
#346094
Acho melhor vc copiar as fotos para uma determinada pasta e gravar somente o endereço da foto no campo da sua tabela. Tipo:

Recordset!IMG_LOCAL = [Ô]C:\Imagens\foto.jpg[Ô]

Ouvi falar que não é muito aconselhável gravar imagens diretamente no banco, dá muito erro e o banco acaba ficando maior com mais rapidez.
EDERMIR 30/06/2010 08:34:13
#346124
A indicação do MSMJUDAS está correta. Ter uma tabela com imagens degrada a consulta.

Eu utilizo duas formas:
- Uma pasta com as fotos.
- Uma tabela somente com as fotos.

Caso aguém apague a foto da pasta, o sistema automaticamente procura na tabela e grava novamente na pasta.

Inserir imagem na tabela:
Wfoto = Wdiretorio_fotos & Trim(Text1(0).Text) & [Ô].jpg[Ô]
SavePicture Image1.Picture, Wfoto
Set mystream = New ADODB.Stream
mystream.Type = adTypeBinary
mystream.Open
mystream.LoadFromFile Wfoto
.AddNew
SQL_RS([Ô]CPF[Ô]) = Trim(Text1(0).Text)
SQL_RS([Ô]FOTO[Ô]) = mystream.Read
.Update
Set mystream = Nothing

Apagar é mais fácil:
conn.execute [Ô]delete from TABELA where CPF = [ô][Ô] & trim(text1(0).text)

Comandos utilizados em FIREBIRD.
JCARLOS 30/06/2010 08:34:21
#346125
Resposta escolhida
Eu uso uma dll muito boa pra fazer isso.
Aí vai ela com um exemplo.
Tópico encerrado , respostas não são mais permitidas