GRAV IMG NO DB SQL SERV COM ADO

USUARIO.EXCLUIDOS 12/07/2004 17:10:29
#33239
Alguem sabe como obigado!!!
LCSD 12/07/2004 17:19:27
#33244
Resposta escolhida
NOSSA....


Essa, agora eu já não vou poder te ajudar........ ESSA VC ME PEGOU!!!!
LCSD 13/07/2004 09:27:02
#33296
Bom, segundo pesquisas minhas:


- Gravando uma imagem diretamento no BD, ocupará um espaço considerável. Imagine após 1.000 imagens de 1mb???
- A lentidão para carregar as imagens, no caso de usar uma filtragem ou busca por homonimos

.Sugestão, grave a imagem em um diretório e atribua a esta imagem um código que fique armazenado no seu BD, e em seguida faça um LOADPICTURE em um campo IMAGE, para visualizar a imagem. Evitando assim, as considerações iniciais.

LCSD 13/07/2004 10:31:17
#33310
O que VC pode fazer é fazer uma função para verificar se o caminho existe, se não existir, VC tira as \\ do começo da expressão e verifica novamente se o caminho existe.

Ou, uma outra solução mais "besta", seria criar 2 campos de "caminho", um VC grava o local com as \\ e o outro sem as \\. E na hora de abrir a imagem, VC verifica se o caminho do campo1 existe, se não existir, verifica o campo2.


é uma saída!!!
LCSD 13/07/2004 10:46:36
#33313
Mas, continuando com as minhas pesquias por aí, peguei este código com um amigo meu, não sei se funciona e NEM como funciona, mas como eu sei que VC manja bastante de VB e de SQLSERVER, VC pode muito mais do que eu, testar e tirar possíveis erros:

O campo tem que ser to tipo "image"

Utilize esta função abaixo.

Public Sub GravarImagemBanco(ByVal strCaminhoImagemGravar As String)
Dim i As Integer
Dim Fragment As Integer, Fl As Long, Chunks As Integer
Dim ADORecImagem As ADODB.Recordset

On Error GoTo ErroGravarImagem

Screen.MousePointer = 11

Set ADORecImagem = New ADODB.Recordset
ADORecImagem.ActiveConnection = G_ADOConexao
ADORecImagem.CursorLocation = adUseClient
ADORecImagem.CursorType = adOpenStatic
ADORecImagem.LockType = adLockOptimistic
ADORecImagem.Open "SELECT * FROM TABELADAIMAGEM WHERE ...."

If ADORecImagem.EOF = True Then 'Não tem firma nesta data

G_ADOConexao.Execute "INSERT INTO TABELADAIMAGEM ..."

Set ADORecImagem = New ADODB.Recordset
ADORecImagem.ActiveConnection = G_ADOConexao
ADORecImagem.CursorLocation = adUseClient
ADORecImagem.CursorType = adOpenStatic
ADORecImagem.LockType = adLockOptimistic
ADORecImagem.Open "SELECT * FROM TABELADAIMAGEM WHERE ...."

End If

Screen.MousePointer = 11

F_intDataFile = FreeFile
Open strCaminhoImagemGravar For Binary Access Read As F_intDataFile
Fl = LOF(F_intDataFile)
If Fl = 0 Then Close F_intDataFile: Exit Sub

Chunks = Fl \ FC_conChunkSize
Fragment = Fl Mod FC_conChunkSize
ReDim F_bytChunk(Fragment)

Screen.MousePointer = 11

Get F_intDataFile, , F_bytChunk()
ADORecImagem.Fields("IMF_IMAGEM").AppendChunk F_bytChunk()
ReDim F_bytChunk(FC_conChunkSize)
For i = 1 To Chunks
Screen.MousePointer = 11
Get F_intDataFile, , F_bytChunk()
ADORecImagem.Fields("IMF_IMAGEM").AppendChunk (F_bytChunk())
Next i
Close F_intDataFile
Screen.MousePointer = 11

ADORecImagem.Update

ADORecImagem.Close
Set ADORecImagem = Nothing

Screen.MousePointer = 0

Exit Sub
ErroGravarImagem:
MsgBox "Ocorreu um erro: " & Err.Number & " - " & Err.Description
On Local Error Resume Next
Close F_intDataFile
If Len(Dir$(strCaminhoImagemGravar)) Then
Kill strCaminhoImagemGravar
End If
Err.Clear
Screen.MousePointer = 0
End Sub
Tópico encerrado , respostas não são mais permitidas