IMAGEM BANCO DE DADOS
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.
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
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
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
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
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
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
Aconselho a trabalhar com as fotos fora do bd
Tavez isso possa te ajudar:
Clique Aqui.
Clique Aqui.
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
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
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
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
JCM0867
Você consegue colocar este código no Vb6 e gravar está Imagem.
Você consegue colocar este código no Vb6 e gravar está Imagem.
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
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