IMAGEM BANCO DE DADOS

 Tópico anterior Próximo tópico Novo tópico

IMAGEM BANCO DE DADOS

VB / VBA

 Compartilhe  Compartilhe  Compartilhe
#476375 - 07/09/2017 22:35:30

JANDER

Cadast. em:Março/2004


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

  




#476380 - 08/09/2017 08:56:54

PAULOOLIVEIRA
RIO CLARO - SP
Cadast. em:Fevereiro/2004


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

Paulo Oliveira


Impossivel é Deus pecar, o resto a gente da um jeito!

#476425 - 11/09/2017 08:23:41

JOHNSTEVE
COSMOPOLIS-SP
Cadast. em:Janeiro/2016


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



#476429 - 11/09/2017 09:55:10

DAMASCENO.CESAR
ADAMANTINA
Cadast. em:Fevereiro/2009


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

O conhecimento é como o dinheiro: quanto mais temos, mais queremos ter (Josh Billings)  


#476528 - 13/09/2017 22:43:59

JORGESALES
CEARA
Cadast. em:Maio/2015


Tavez isso possa te ajudar:
Clique Aqui.

______________________________________
Aos 52 anos descobri a magia da programação.
Obrigado a todos que sempre me ajudam.
Tudo começou aqui: Curso Excel VBA


#476602 - 15/09/2017 20:31:58

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


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



#476624 - 17/09/2017 15:21:25

JCM0867
BALNEARIO CAMBORIU
Cadast. em:Março/2012


Última edição em 17/09/2017 15:24:03 por JCM0867

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

                    




#476625 - 17/09/2017 18:36:23

OMAR2011
MONTES CLAROS
Cadast. em:Setembro/2011


JCM0867
Você consegue colocar este código no Vb6 e gravar está Imagem.



#476629 - 17/09/2017 22:32:10

JCM0867
BALNEARIO CAMBORIU
Cadast. em:Março/2012


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



 Tópico anterior Próximo tópico Novo tópico


Para responder este tópico o login é requerido
Se você já possui uma conta de usuário por favor faça seu login
Se você não possui uma conta de usuário use a opção Criar usuário