IMAGEM BANCO DE DADOS

JANDER 07/09/2017 22:35:30
#476375
Boa Noite.
Alguém sabe como faço para gravar uma imagem no banco de dados MySQL por sql insert?

seque abaixo como estou tentando fazer mais está dando erro, estou utilizando tipo longblob no campo imagem da tabela foto.

 
Dim MyStream As ADODB.Stream
Set MyStream = New ADODB.Stream

MyStream.Type = adTypeBinary
MyStream.Open
MyStream.LoadFromFile [Ô]C:\foto.jpg[Ô]

sql= [Ô]insert into foto(imagem) values([ô][Ô]+ MyStream.Read +[Ô][ô])[Ô]
conn.Execute sql

PAULOOLIVEIRA 08/09/2017 08:56:54
#476380
Bom dia!

Na minha humilde opiniao... voce deve trabalhar a foto externamente... acho que o bd fica pesado com as fotos.....

Da uma pesquisada aqui no forum, tem varios tópicos sobre este assunto...


blz


abç1
JOHNSTEVE 11/09/2017 08:23:41
#476425
Bom dia, um conselho...
eu fazia dessa forma que vc esta fazendo, dai a galera aqui do forum me orientou da mesma forma que PAULOOLIVEIRA sitou a cima..

eu aconselho vc fazer o seguinte... salve no banco de dados o Caminho da Imagem...
tipo no meu sistema eu defini uma pasta só para imagens.. onde eu copio de qualquer parte do computador.. e deixo salvo na pasta padrao do meu sistema.
dai salvo o Caminho no meu banco de dados... qnd quero usar no meus relatorios, forms, etc, qualquer lugar do meu sistema... eu faço o seguinte.. pego do meu banco de dados o caminho,
e abro a Imagem salva

qualquer dúvida só chamar
DAMASCENO.CESAR 11/09/2017 09:55:10
#476429
aqui no VBM tem algumas coisas sobre a foto no bd (Postei em um topico), mas fica enorme!!
Aconselho a trabalhar com as fotos fora do bd
JORGESALES 13/09/2017 22:43:59
#476528
Tavez isso possa te ajudar:
Clique Aqui.
OMAR2011 15/09/2017 20:31:58
#476602
Tentei usar o provider Mysql MyProv.dll,mas não obtive resultado.
Então usei o Driver ODBC e deu resultado.
Caso alguém precise.

Dim Cmdimg As New ADODB.Command
Dim Resp As Byte
Dim Cnimg As New ADODB.Connection
Dim MyStream As ADODB.Stream
Set MyStream = New ADODB.Stream
Dim Caminho As String
Caminho = [Ô]c:\Bahia.gif[Ô]
MyStream.Type = adTypeBinary
MyStream.Open
MyStream.LoadFromFile Caminho
Cnimg.Open [Ô]Driver={MySQL ODBC 5.1 Driver};Server=localhost;Database=test;User=root;Password=12qw;Option=3;[Ô]

Resp = MsgBox([Ô]Confirma Gravação da imagem no Banco de Dados ?[Ô], vbYesNo + vbQuestion, [Ô]Salvar Imagem[Ô])

If Resp = 7 Then Exit Sub

With Cmdimg

Set .ActiveConnection = Cnimg
.CommandType = adCmdText
.Prepared = True
.CommandText = [Ô]INSERT INTO Cliente (id,nome,img) Values (?, ?, ?)[Ô]
.Parameters.Append .CreateParameter([Ô]Id[Ô], adInteger, adParamInput, 3)
.Parameters.Append .CreateParameter([Ô]Nome[Ô], adVarChar, adParamInput, 20)
.Parameters.Append .CreateParameter([Ô]Img[Ô], adBinary, adParamInput, 16535) [ô]

.Parameters([Ô]id[Ô]) = txt1.Text
.Parameters([Ô]Nome[Ô]) = txt2.Text
.Parameters([Ô]img[Ô]) = MyStream.Read

.Execute
End With

Set Cmdimg = Nothing
JCM0867 17/09/2017 15:21:25
#476624
Normalmente se salva o Caminho e nome da imagem no banco de dados

Agora para gravar, faz o seguinte. como eu faço, deve ter outras maneiras;

Primeiro eu altero o campo que irá receber a imagem
[Ô]Alter Table TabelaImagem Alter Column FotoAluno Image[Ô]

Agora para salvar a imagem
CarregaFotoAluno = carregaImagem(RaizSistema + [Ô]\Fotos\[Ô] + drAlunosSelecao([Ô]AluFoto[Ô]))

sqlCarregaFoto = [Ô]Update TabelaFoto [Ô] +
[Ô]Set FotoAluno = @ImgFoto [Ô]

cdCarregaFoto.Parameters.Clear()
cdCarregaFoto.Parameters.Add([Ô]@ImgFoto[Ô], SqlDbType.Image).Value = CarregaFotoAluno

Veja bem, na tabela de cadastro eu salvo só caminho + NomeImagem
aí na consulta para levar pria impressão eu coloco a imagem
só faltou as conexões com o banco, aí pode fazer do teu jeito

Faço isso para carteirinha de Aluno e ficha de matricula

Veja minhas telas com foto
https://www.cjsystem.com.br/produto


OMAR2011 17/09/2017 18:36:23
#476625
JCM0867
Você consegue colocar este código no Vb6 e gravar está Imagem.
JCM0867 17/09/2017 22:32:10
#476629
Esse exemplo que dei é para SQL Server no VB.NET, para my sql não sei se muda alguma coisa.
Quando eu usava o VB6 nunca inseri imagem pq era no Access (nem sei se access aceita imagem), colocava Caminho e nome da imagem somente. e tb não colocava para imprimir pq o Crystal 8.5 não aceitava imagem dinamicamente
Faça seu login para responder