SALVAR IMAGEM COM SQL

RODEOLIVEIRA 12/03/2010 16:16:20
#336818
Olá a todos


Eu usou SQL em todo o meu sistema, por exemplo, para inclusão de registros eu uso INSERT INTO Tabela (Campo1, Campo2,...) VALUES (Valor1, Valor2,...), porém me surgiu uma dúvida.


Preciso salvar no banco de dados uma imagem, o tipo de campo eu já sei, mas eu não sei como fazer para colocar dentro da instrução SQL a imagem que está no objeto Image. Como fazer?


Rodrigo
ERIVELTONVGA 13/03/2010 21:42:17
#336890
boa noite amigo.
pode lhe dar uma dica. nao grave imagem no banco, faca o seguinte grave o caminho do arquivo no banco apenas. pois o risco de perder as imagens é alto.
se fizer por caminho isto nao ocorre. segue um exemplo.

na funcao click do comando

Dim Prop As String
On Error Resume Next
[ô] aqui você define o titulo do seu common dialog control
dlgImagem.DialogTitle = [Ô]Definir Caminho das Fotos[Ô]
[ô] InitDir = o diretório que será aberto ao se abrir o common dialog control
dlgImagem.InitDir = [Ô]C:[Ô]
[ô] FileName determina que a busca seja por todos o arquivos JPG e Bmp
dlgImagem.FileName = [Ô][Ô]
[ô] Filter = filtra somente arquivos PDF
Prop = [Ô]Arqs. pdf(*.pdf) [Ô]
dlgImagem.Filter = Prop
dlgImagem.FilterIndex = 1 [ô] indica a primeira opção
[ô] e agora sim abrir o common dialog
dlgImagem.ShowOpen
[ô] ao se clicar em OK o caminho será salvo no textbox
txtcaminho.Text = dlgImagem.FileName

e para visualizar o arquivo aqui abaixo
coloque outro botao comando e cole dentro

Dim Capta As Currency
Dim DizondeEstaondeEsta As String
Dim CaminhoEstendido As String
Dim dizondeesta As String
Dim sucesso As Integer

[ô]Rotina no botão Visualizar
CaminhoEstendido = txtcaminho.Text
ShellExecute Me.hWnd, [Ô]Open[Ô], CaminhoEstendido, vbNullString, [Ô]C:\Documents and Settings\ERIVELTON\Desktop\DOCUMENTOS\imagens\[Ô], 1
End Sub



bem, eu espero ter ajudado.
RODEOLIVEIRA 14/03/2010 21:49:18
#336949
Olá ERIVELTONVGA


EU já faço isso, quase da mesma forma, porém nesse caso específico eu preciso salvar dentro do banco de dados, pois o banco não está mais em minha rede e sim hospedado em um servidor remoto, onde eu acesso o banco de dados SQL via IP, e sendo assim, não consigo rastrear onde aquela imagem está salva, já que eu não estou na mesma rede local para especificar onde pegar a imagem salva pelo caminho.

ERIVELTONVGA 14/03/2010 21:54:20
#336950
boa noite REDEOLIVEIRA

nesse caso de uma olhado neste link do macorati

http://www.macoratti.net/vb5_isql.htm.

espero que seja isto que voce precise e espero ter ajudado tambem.
SIDSIL 16/03/2010 16:37:17
#337102
Boa Tarde RODEOLIVEIRA

Eu tambem precisei gravar imagens no meu banco e fiz dessa forma.

Usei um Common Dialog, para acessar os diretorios onde as imagens se encontram
CD1 = CommonDialog
CmdAdd = Botao onde clico para abrir o CommonDialog

Private Sub CmdAdd_Click()
Dim str_Imagem As String
Dim sFilter As String

LblNomeImagem.Caption = [Ô][Ô]

cd1.DialogTitle = [Ô]Selecione A Imagem[Ô]

cd1.Filter = [Ô]Arquivos JPEG|*.jpg|Arquivos GIF|*.gif|Arquivos BMP|*.bmp|Todos os Arquivos|*.*[Ô]
cd1.Action = 1

If cd1.Filename <> [Ô][Ô] Then

If rs.State = 1 Then
rs.Close
End If

str_Imagem = ParseFileName(cd1.Filename)
rs.Open [Ô]Select * from REL_IMAGEM [Ô], envSISCNTR.cntSISCNTR, adOpenKeyset, adLockOptimistic

mstream.Type = adTypeBinary
mstream.Open
mstream.LoadFromFile str_Imagem

rs.AddNew
rs.Fields([Ô]IMG_IMAGEM[Ô]).Value = mstream.Read
rs!IMG_NOME = str_Imagem
rs!PROC_ID = str_IdProc

LblNomeImagem.Caption = str_Imagem

rs.Update

mstream.Close

Picture1.Picture = LoadPicture(cd1.Filename)
Img.Picture = LoadPicture(cd1.Filename)

End If
End Sub

As imagens sao gravadas em formato binario para le-las voce deve [Ô]converte-las[Ô] novamente.
Eu encontrei essa rotina na internet vou verificar se ainda a tenho.

Acho que tenho uma para Access e outra para SQL Server.

Um Abraço
Tópico encerrado , respostas não são mais permitidas