Ir para conteúdo

POWERED BY:

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Isaac Schwartzman

Problema de duplicidade BANCO + DUNDAS UPLOAD

Recommended Posts

Olá pessoal do IMasters.Meu problema é que quando eu tento adicionar 2 imagens relacionados a um produto, são elas uma Pequena(Thumb) e uma Grande, o banco de dados repete a inserção do da imagem e duplica os dados do produto, abaixo o exemplo de como fica:

ClientesCod	ClientesImagemPeq	ClientesImagemGnd	ClientesLegenda		ClientesStatus77		     ImagemPequena.jpg      ImagemPequena.jpg      Teste		         0		78		     ImagemGrande.jpg	     ImagemGrande.jpg	    Teste		          0		

Sendo que ele deveria gravar assim:

ClientesCod	ClientesImagemPeq	ClientesImagemGnd	ClientesLegenda		ClientesStatus77		     ImagemPequena.jpg      ImagemGrande.jpg         Teste		          0		

Estou usando o componente Dundas e o código escrito é:Página do formulário:

<table border="0" cellpadding="3" cellspacing="3" style="width:100%" class="Texto"><form method="post" action="AdminClientesAdicionado.asp" enctype="multipart/form-data">	<tr>		<td colspan="2" class="Titulo2 , TabelaEspacamento">Clientes / Adicionar</td>	</tr>	<tr>		<td>Imagem Pequena </td>		<td style="width:85%"><input type="file" name="varImagemPeq" style="width:85%;" value="<%=varImagemPeq%>" class="Formulario"></td>	</tr>	<tr>		<td>Imagem Ampliada </td>		<td style="width:85%"><input type="file" name="varImagemGnd" style="width:85%;" value="<%=varImagemGnd%>" class="Formulario"></td>	</tr>		<tr>		<td>Categoria </td>		<td style="width:85%">		<select name="varCategoria">			<option value="Comércios">Comércios</option>		  	<option value="Clínicas">Clínicas</option>		  	<option value="Edifícios">Edifícios</option>		  	<option value="Residências">Residências</option>		</select>		</td>	</tr>		<tr>		<td valign="top">Legenda </td>		<td><input type="text" name="varLegenda" maxlength="250" style="width:99%;" value="<%=varLegenda%>" class="Formulario"></td>	</tr>			<tr>		<td colspan="2">		<input type="submit" name="Adicionar" value="Adicionar" class="Formulario">		<input type="hidden" name="varStatus" value="1">		</td>	</tr></form></table>

Página que grava no banco:

<%Dim objUpload dim objUploadedFile Set objUpload = server.CreateObject("Dundas.Upload.2")varPastaOndesalva = replace(Request.ServerVariables("PATH_TRANSLATED"),"AdminClientesAdicionado.asp","../../ImgCli")objUpload.UseVirtualDir = false objUpload.UseUniqueNames = falseobjUpload.Save varPastaOndesalvaFor Each objUploadedFile in objUpload.Files varCategoria = replace(objUpload.form("varCategoria"),"'","''")varLegenda = replace(objUpload.form("varLegenda"),"'","''")varImagemPeq = Right(objUploadedFile.path,Len(objUploadedFile.path)-InstrRev(objUploadedFile.path,"\"))varImagemGnd = Right(objUploadedFile.path,Len(objUploadedFile.path)-InstrRev(objUploadedFile.path,"\"))	set rsAdProfessor = DB.Execute("INSERT INTO TabClientes (ClientesImagemPeq, ClientesImagemGnd, ClientesLegenda, ClientesCategoria, ClientesStatus) values ('"& varImagemPeq &"','"& varImagemGnd &"','"& varLegenda &"','"& varCategoria & "',0)")Next 	Set objUpload = nothing 	if ERR = 0 then		response.redirect "AdminClientesLista.asp"		response.end	end if%>

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hora de inserir você tem que gravar o código do usuário na tabela. Pelo seu INSERT você não está fazendo isso.

 

Outro detalhe, é que é feito um upload por vez, por isso tem o FOR. Então não adianta você tentar gravar os dois arquivos ao mesmo tempo no banco.

 

O melhor a fazer é gravar o código do usuário na primeira vez que incluir um arquivo, na segunda vez que o FOR ler o próximo arquivo, você faz um SELECT para verificar se o código do usuário já foi incluído. Caso tenha sido, ao invés de incluir novamente, você faz um update na tabela.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Na hora de inserir você tem que gravar o código do usuário na tabela. Pelo seu INSERT você não está fazendo isso.Outro detalhe, é que é feito um upload por vez, por isso tem o FOR. Então não adianta você tentar gravar os dois arquivos ao mesmo tempo no banco.O melhor a fazer é gravar o código do usuário na primeira vez que incluir um arquivo, na segunda vez que o FOR ler o próximo arquivo, você faz um SELECT para verificar se o código do usuário já foi incluído. Caso tenha sido, ao invés de incluir novamente, você faz um update na tabela.

Não é usuário, é uma foto com thumnail e full, e uma pequena descrição. Não há então a possibilidade de eu poder inserir tudo com um único clique?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é tudo com um único clique... mas o FOR vai rodar duas vezes.

 

Por isso você tem que referenciar a foto a alguma coisa pra fazer o UPDATE. Qual a chave primaria da tabela?

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é tudo com um único clique... mas o FOR vai rodar duas vezes.

 

Por isso você tem que referenciar a foto a alguma coisa pra fazer o UPDATE. Qual a chave primaria da tabela?

A chave é a ClientesCod.

Compartilhar este post


Link para o post
Compartilhar em outros sites

Sim, é tudo com um único clique... mas o FOR vai rodar duas vezes.Por isso você tem que referenciar a foto a alguma coisa pra fazer o UPDATE. Qual a chave primaria da tabela?

Qual a solução para esse incrivel e disprendioso problema, cara infelizmente não conheço nada de ASP, estou sendo obriagado a fazer algumas alterações aqui e e isso esta no meio :(, por favor ajude-me.

Compartilhar este post


Link para o post
Compartilhar em outros sites

×

Informação importante

Ao usar o fórum, você concorda com nossos Termos e condições.