INSERIR IMAGEM NO MYSQL VIA VB6
Ola pessoal,
Alguém teria um exemplo simples de código para inserir imagens no MYSQL 5.1, agora preciso gravar a imagem no banco e não o caminho como ja vi em vários fóruns aqui.
Pois o aplicativo sera usado em vários estados e a imagem terá de estar disponÃvel aonde o aplicativo tiver instalado.
Grato a colegas e esperando por uma ajuda.
Cláudio
Alguém teria um exemplo simples de código para inserir imagens no MYSQL 5.1, agora preciso gravar a imagem no banco e não o caminho como ja vi em vários fóruns aqui.
Pois o aplicativo sera usado em vários estados e a imagem terá de estar disponÃvel aonde o aplicativo tiver instalado.
Grato a colegas e esperando por uma ajuda.
Cláudio
uma forma que utilizo
em qualquer lugar do seu código para salvar utilizo
para carregar a foto, repare que coloquei um código chamado miniatura, isso voce pode alterar, eu coloquei para uma exibição melhor em meu formulário.
acima onde esta picture1 eu carrego a foto normal e picfoto é a picture box que me mostra a miniatura.
você pode fazer as alterações para mostrar apenas a figura normal.
tanto para salvar eu usei um id (re) para identificar a foto, então voce pode mudar para o nome da pessoa por exemplo.
Sub SalvaFoto(REG As Integer, caminho As String, tipo As Integer)
[ô] tipo=1 salva
[ô] tipo=2 altera
On Error GoTo TrataErro
Dim RSimagem As ADODB.Recordset
Dim MyStream As ADODB.Stream
Set RSimagem = New ADODB.Recordset
Set MyStream = New ADODB.Stream
Dim xSQL As String
10 MyStream.Type = adTypeBinary
If tipo = 1 Then
xSQL = [Ô]SELECT re,foto FROM fotos[Ô]
20 RSimagem.Open xSQL, Conexao, adOpenStatic, adLockOptimistic
30 MyStream.Open
40 MyStream.LoadFromFile caminho
45 RSimagem.AddNew
50 RSimagem!re = REG
Else
xSQL = [Ô]SELECT re,foto FROM fotos WHERE re=[ô][Ô] & CStr(REG) & [Ô][ô][Ô]
51 RSimagem.Open xSQL, Conexao, adOpenStatic, adLockOptimistic
52 MyStream.Open
53 MyStream.LoadFromFile caminho
End If
60 RSimagem!foto = MyStream.Read
70 RSimagem.Update
80 MyStream.Close
90 RSimagem.Close
Set RSimagem = Nothing
Exit Sub
TrataErro:
MsgBox [Ô]Linha [Ô] & Str$(Erl) & [Ô] - [Ô] & Err.Number & [Ô] - [Ô] & Err.Description
SendMessage mCapHwnd, WM_CAP_DRIVER_DISCONNECT, 0, 0
End Sub
Function CarregarFoto(REG As Integer, Pic As PictureBox, miniatura As PictureBox)
Dim RSimagem As New ADODB.Recordset
Dim MyStream As New ADODB.Stream
Dim cSQL As String
With MyStream
.Type = adTypeBinary
cSQL = [Ô]SELECT re,foto FROM fotos WHERE re=[ô][Ô] & REG & [Ô][ô] AND not isnull(foto)[Ô]
RSimagem.Open cSQL, Conexao, adOpenStatic, adLockOptimistic
If Not (RSimagem.BOF And RSimagem.EOF) Then
.Open
.Write RSimagem!foto
.SaveToFile App.Path & [Ô] mp.bmp[Ô], adSaveCreateOverWrite
.Close
Pic.Picture = LoadPicture(App.Path & [Ô] mp.bmp[Ô])
Kill (App.Path & [Ô] mp.bmp[Ô])
RSimagem.Close
Set RSimagem = Nothing
Else
Exit Function
End If
End With
miniatura.AutoRedraw = True
miniatura.PaintPicture Pic.Picture, 0, 0, 1701, 2268, 0, 0, Pic.Width, Pic.Height
miniatura.AutoRedraw = False
miniatura.Picture = miniatura.Image
End Function
em qualquer lugar do seu código para salvar utilizo
SalvaFoto txtRE.Text, CaminhoFoto, 1 [txt-color=#007100][ô] se for uma alteração então coloque 2 no lugar de 1[/txt-color]
para carregar a foto, repare que coloquei um código chamado miniatura, isso voce pode alterar, eu coloquei para uma exibição melhor em meu formulário.
CarregarFoto txtRE.Text, Picture1, picFoto
acima onde esta picture1 eu carrego a foto normal e picfoto é a picture box que me mostra a miniatura.
você pode fazer as alterações para mostrar apenas a figura normal.
tanto para salvar eu usei um id (re) para identificar a foto, então voce pode mudar para o nome da pessoa por exemplo.
Esqueci de informar eu criei um campo so para as fotos, e o tipo do campo no mysql que armazena a foto é LONGBLOB.
Muita foto no MySQL não deixa o sistema lento? mesmo ele sendo um SGBD muito bom??
Marcelo-Treze
Obrigado por me ajudar quando a este codigo, mas quando executo esta tento um problema no CaminhoFoto, esta aparecendo a seguinte mensagem de erro: ByRef argument mismatch o que pode ser?
SalvaFoto txtRE.Text, [txt-color=#e80000]CaminhoFoto[/txt-color], 1 [ô] se for uma alteração então coloque 2 no lugar de 1
Obrigado por me ajudar quando a este codigo, mas quando executo esta tento um problema no CaminhoFoto, esta aparecendo a seguinte mensagem de erro: ByRef argument mismatch o que pode ser?
SalvaFoto txtRE.Text, [txt-color=#e80000]CaminhoFoto[/txt-color], 1 [ô] se for uma alteração então coloque 2 no lugar de 1
no caminho da foto você está colocando o caminho da foto?
Sim estou fazendo assim:
CaminhoFoto=[Ô]c:\foto.jpg[Ô]
Pois a foto encontrase no diretorio raiz do sistema.
CaminhoFoto=[Ô]c:\foto.jpg[Ô]
Pois a foto encontrase no diretorio raiz do sistema.
Quais as referências ou componentes para usar o adodb.stream ?
Tópico encerrado , respostas não são mais permitidas