USUÁRIO:      SENHA:        SALVAR LOGIN ?    Adicione o VBWEB na sua lista de favoritos   Fale conosco 

 

  Fórum

  Visual Basic
Voltar
Autor Assunto:  Imagens no Access
victor
não registrado
Postada em 14/09/2004 09:47 hs   
Bom dia,
 
gostaria de saber se alguem sabe como eu faço pra gravar imagens em um campo no banco de dados access (uso o 2000).
 
Obrigado
 
Victor
     
DennysFelix
SÃO PAULO
SP - BRASIL
Postada em 14/09/2004 09:55 hs            
Se utilizarmos o tipo Objeto OLE e guardarmos as fotos em nosso MDB com o tempo se tornará um transtorno pois como você pode perceber o seu banco de dados estará guardando o tamanho dos seus arquivos BMP.
Com isto sugero que você utilize uma outra forma que irei passar a abaixo, que será melhor pela capacidade de armazenamento. Neste caso estaríamos somente guardando o caminho e o nome do arquivo em BMP
Você poderá criar uma rotina para efetuar a verificação do caminho e o nome do arquivo BMP a cada mudança de registro e o LOADPICTURE irá carregar a propriedade PICTURE do objeto Picture com esta foto.
Com isto você somente irá guardar somente o nome do arquivo em BMP, e a sua rotina se encarrega de ir buscar a figura e vinculá-la ao objeto PICTURE do seu formulário.
Exemplo dos dados a serem guardados...
C:SEUARQUIVO.BMP
Abaixo um exemplo de como poderia ser sua rotina...
Picture1.Picture = LoadPicture(tabela("Caminho"))    'para carregar...
Text1 = tabela("Caminho")     'textbox que armazena o caminho da figura
Já para gravar, você deverá utilizar o método AddNew:
tbl.AddNew
tbl("Caminho") = Text1    'guarda o caminho da figura.
tbl.Update
Neste caso o campo que guardará o caminho da foto deverá ser do tipo String e não objeto OLE.
Já se mesmo sabendo destes transtornos você queira continuar usando o campo do tipo objeto OLE para armazenar suas imagens, abaixo seguem as funções que armazenam e lêem as imagens:
Public Sub GetPicture(f As Field, pic As Control)
    Dim x()         As Byte
    Dim ff          As Integer
    Dim strArqTemp  As String
    strArqTemp = "c:     emppic.bmp"
    ff = FreeFile
    Open strArqTemp For Binary Access Write As ff
        x() = f.GetChunk(0, f.FieldSize)
        Put ff, , x()
    Close ff
    pic.Picture = LoadPicture(strArqTemp)
    Kill strArqTemp
End Sub
Public Sub LetPicture(f As Field, pic As Control)
    Dim x()         As Byte
    Dim n           As Long
    Dim ff          As Integer
    Dim strArqTemp  As String
    ff = FreeFile
    strArqTemp = "c:     emppic.bmp"
    SavePicture pic.Picture, strArqTemp
    Open strArqTemp For Binary Access Read As ff
    n = LOF(ff)
    If n Then
        ReDim x(n)
        Get ff, , x()
        f.AppendChunk x()
        Close ff
    End If
    Kill strArqTemp
End Sub
Primeiro você terá que armazenar a imagem no banco de dados no formato em que ele consiga reconhecer (Binários Longos), pra isso use:
rec.AddNew
LetPicture rec("Figura"), Picture1
'rec("OutroCampo") = outrovalor...
rec.Update
Depois sim você poderá ler o registro, para isso use:
GetPicture rec("Figura"), Picture1
onde rec("Figura") é o recordset que contém a figura.
     
Página(s): 1/1    


Seu Nome:

Seu eMail:

ALTERAR PARA MODO HTML
Mensagem:

[:)] = 
[:P] = 
[:(] = 
[;)] = 

HTML DESLIGADO

     
 VOLTAR

  



CyberWEB Network Ltda.    © Copyright 2000-2025   -   Todos os direitos reservados.
Powered by HostingZone - A melhor hospedagem para seu site
Topo da página