ERRO AO CADASTRAR FOTO EM BANCO DE DADOS

GNCNET 05/09/2010 10:15:28
#352264
Pessoal,
Estou com dificuldades para resolver esta situação.
Preciso que seja feita uma consulta para verificar se já há uma foto pré-cadastrada no BD antes de inserir uma nova ou substituir.
BD Acess
ONDE ESTÁ O ERROI?

Private Sub SSCommand2_Click(Index As Integer)

Dim bb As Database
Dim rsfoto As Recordset
Set bb = OpenDatabase(caminho)

If Txt_cod.Text = [Ô][Ô] Then
MsgBox [Ô]Selecione um paciente![Ô]
Exit Sub
End If

codcli = Txt_cod.Text

[ô]On Error GoTo foto_erro

[ô]/-/ Verificar se a pasta existe e criar a pasta caso não haja
[ô]fotos = caminho no arquivo de configuração
If Dir(fotos & [Ô]\[Ô] & codcli, vbDirectory) = [Ô][Ô] Then
MkDir fotos & [Ô]\[Ô] & codcli
End If
[ô]/-/ Verificar se a pasta existe e criar a pasta caso não haja


Select Case Index
Case 0 To 19 [ô]Existem 19 image indexados no form

Dim ww As Integer
ww = Index
[ô]VERIFICA NO NB FOTOS CADASTRADAS NESTA POSIÇÃO
Set rsfoto = bb.OpenRecordset([Ô]select * from tblfotos where codcli=[Ô] & Txt_cod.Text & [Ô]and posicao = [ô]ww[ô] [Ô])

If rsfoto.RecordCount > 0 Then [ô]SE JÁ HOUVER FOTO PRE-CADASTRADA, APENAS SUBSTITUI A FOTO POR UMA NOVA
rsfoto.MoveFirst
Do While Not rsfoto.EOF
If Not IsNull(rsfoto!posicao) Then Index = rsfoto!posicao
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
rsfoto.MoveNext
Loop

Else

chama_fotos [ô]ABRE A CAIXA DE DIÁLOGO
If MsgBox([Ô]Confirma a inclusão/alteração desta imagem?[Ô], vbYesNo, MsgClinica) = vbYes Then
[ô]Copiar o arquivo para pasta
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
[ô]Salvar NOVO arquivo em novo local no BD
bb.Execute ([Ô]INSERT INTO tblfotos (codcli,foto,tipo,posicao) values([ô][Ô] & codcli & [Ô][ô], [ô][Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô][ô],[ô][Ô] & [Ô]f[Ô] & [Ô][ô],[ô][Ô] & Index & [Ô][ô])[Ô])

[ô]End If
End Select

end sub
GNCNET 05/09/2010 13:47:02
#352290
Alguém?
só para simplificar o texto:

Select Case Index
Case 0 To 19 [ô]Existem 19 image indexados no form

Dim ww As Integer
ww = Index
[ô]VERIFICA NO NB FOTOS CADASTRADAS NESTA POSIÇÃO
Set rsfoto = bb.OpenRecordset([Ô]select * from tblfotos where codcli=[Ô] & Txt_cod.Text & [Ô]and posicao = [ô]ww[ô] [Ô])

If rsfoto.RecordCount > 0 Then [ô]SE JÁ HOUVER FOTO PRE-CADASTRADA, APENAS SUBSTITUI A FOTO POR UMA NOVA
rsfoto.MoveFirst
Do While Not rsfoto.EOF
If Not IsNull(rsfoto!posicao) Then Index = rsfoto!posicao
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
rsfoto.MoveNext
Loop

Else

chama_fotos [ô]ABRE A CAIXA DE DIÁLOGO
If MsgBox([Ô]Confirma a inclusão/alteração desta imagem?[Ô], vbYesNo, MsgClinica) = vbYes Then
[ô]Copiar o arquivo para pasta
FileCopy foto, fotos & ([Ô]\[Ô] & codcli & [Ô]\[Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô].jpg[Ô])
[ô]Salvar NOVO arquivo em novo local no BD
bb.Execute ([Ô]INSERT INTO tblfotos (codcli,foto,tipo,posicao) values([ô][Ô] & codcli & [Ô][ô], [ô][Ô] & Index & [Ô]_[Ô] & codcli & [Ô]_[Ô] & cmb_clientes & [Ô][ô],[ô][Ô] & [Ô]f[Ô] & [Ô][ô],[ô][Ô] & Index & [Ô][ô])[Ô])

[ô]End If
End Select
GNCNET 12/09/2010 10:55:39
#352771
Optei por realizar uma rotina que copia a imagem para: imagens\codigocliente\img1.jpg
O programa agora carrega o form direto da pasta >> load picture ...
Alguém poderia comentar desvantagens desta forma em relação a gravar o caminho no BD?
NLSOLUCOES 12/09/2010 12:02:20
#352775
Resposta escolhida
Tenha certeza que vc fez a melhor escolha pois, gravando no DB poderia lhe dar muita dor de cabeça.

Ainda mais se for DB Access poís além de almentar o tamanha rapidamente, poderá corromper, diminuir a velocidade na rede/aplicação etc...

Excelente escolha!

[]'s


GNCNET 12/09/2010 12:09:35
#352777
Nlsolucoes,
Creio que meu comentario seja mais simples:
não estava salvando a imagem no BD, mas apenas o caminho.
Mudei e passei a copiar o arquivo para uma pasta, sem anotar o caminho no BD
NLSOLUCOES 13/09/2010 01:01:44
#352815
Citação:

Creio que meu comentario seja mais simples:
não estava salvando a imagem no BD, mas apenas o caminho.
Mudei e passei a copiar o arquivo para uma pasta, sem anotar o caminho no BD



GNCNET,

Na falta de tempo e na itenção de lhe ajudar, dei mais atenção ao título que diz [txt-color=#e80000][Ô]ERRO AO CADASTRAR FOTO EM BANCO DE DADOS[Ô][/txt-color] e uma passada rápida no seu último comentário.

Por isso o mal entendido!

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